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