PaliSkill
Python avancé

Leçon 2 / 9 — Chapitre 3: POO : méthodes spéciales, propriétés et dataclasses

__repr__ : une représentation pour le débogage

__repr__ est une seconde méthode spéciale d'affichage, destinée avant tout au débogage — elle s'affiche notamment quand un objet apparaît dans une liste, ou en tapant directement son nom dans un interpréteur interactif.

class Produit:
    def __init__(self, nom, prix):
        self.nom = nom
        self.prix = prix

    def __repr__(self):
        return f"Produit(nom={self.nom!r}, prix={self.prix})"

produits = [Produit("riz", 5), Produit("huile", 8)]
print(produits)

Ce code affiche [Produit(nom='riz', prix=5), Produit(nom='huile', prix=8)] : à l'intérieur d'une liste, Python utilise __repr__ (et non __str__) pour afficher chaque élément, même avec print().

!r dans la f-string force l'affichage de nom avec repr() plutôt que str(), ce qui ajoute les guillemets autour de la chaîne — une convention utile pour qu'un __repr__ ressemble, autant que possible, au code Python qui recréerait l'objet.

Si __str__ est absent mais __repr__ présent, print() utilise __repr__ par défaut ; l'inverse n'est pas vrai. Il est donc courant de définir __repr__ en priorité, et __str__ seulement si un affichage différent est souhaité pour l'utilisateur final.

À vous de jouer : ajoutez __repr__ à une classe, placez plusieurs objets dans une liste, et vérifiez que print() sur la liste utilise bien __repr__.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 87 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès