PaliSkill
← Python avancé

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.