Leçon 1 / 9 — Chapitre 3: POO : méthodes spéciales, propriétés et dataclasses
__str__ : personnaliser l'affichage d'un objet
Par défaut, print() sur un objet affiche un texte peu lisible comme <__main__.Produit object at 0x...>. La méthode spéciale __str__ permet de définir un affichage clair, utilisé automatiquement par print() et str().
class Produit:
def __init__(self, nom, prix):
self.nom = nom
self.prix = prix
def __str__(self):
return f"{self.nom} ({self.prix} $)"
riz = Produit("riz", 5)
print(riz)
Ce code affiche riz (5 $) : print(riz) appelle automatiquement riz.__str__() en interne, sans qu'on ait besoin d'appeler cette méthode explicitement — c'est ce qui différencie une méthode spéciale (entourée de doubles underscores) d'une méthode normale.
str(riz) produit exactement le même résultat, puisque str() appelle aussi __str__ en interne :
print(str(riz))
Sans __str__ défini, print(riz) afficherait l'adresse mémoire de l'objet, peu utile pour comprendre ce qu'il contient — __str__ rend cet affichage réellement exploitable, pour du débogage ou pour un utilisateur final.
À vous de jouer : ajoutez une méthode __str__ à une classe de votre choix, qui affiche un résumé lisible de ses attributs, puis testez print() sur un objet.
Continuez ce module
Débloquez les leçons restantes ainsi que l'attestation finale.
9 000 XOF / 13,72 € / 14,95 $
Débloquez les 94 leçons restantes de ce module
Pour vous communiquer où envoyer le paiement.
Moyen de paiement souhaité
Nous vous contactons pour le paiement — activé dès réception.