Maison > développement back-end > Tutoriel Python > Comment remplacer `__str__` et `__repr__` pour une sortie d'impression personnalisée des instances de classe ?

Comment remplacer `__str__` et `__repr__` pour une sortie d'impression personnalisée des instances de classe ?

Susan Sarandon
Libérer: 2025-01-03 04:45:38
original
533 Les gens l'ont consulté

How to Override `__str__` and `__repr__` for Customized Print Output of Class Instances?

Comment personnaliser la représentation sous forme de chaîne des instances de classe avec print()

Lors de l'impression des instances d'une classe, le comportement par défaut affiche souvent le emplacement mémoire de l'objet. Pour personnaliser la représentation sous forme de chaîne et contrôler ce qui est affiché lors de l'impression, vous pouvez implémenter deux méthodes spéciales : str et __repr__.

__str__ : définition de la représentation sous forme de chaîne lisible par l'homme

La méthode str définit la représentation sous forme de chaîne d'un objet à usage général. Il est invoqué lorsque vous appelez print() ou str() sur l'objet. En remplaçant __str__, vous pouvez définir la sortie personnalisée qui s'affiche lors de l'impression.

__repr__ : Définition de la représentation sous forme de chaîne pour le débogage

Le repr La méthode définit la représentation sous forme de chaîne destinée à des fins de débogage. Il est invoqué lorsque vous appelez repr() sur l'objet ou si vous ne définissez pas str__. La représentation __repr doit être une expression Python valide qui correspond à l'objet.

Exemple

Pour personnaliser la représentation sous forme de chaîne de vos instances de classe :

class Test:
    def __init__(self):
        self.a = 'foo'

    def __str__(self):
        return "member of Test"

    def __repr__(self):
        return "Test()"
Copier après la connexion

Dans l'exemple ci-dessus :

  • Le La méthode str renvoie une chaîne lisible par l'homme, "membre de Test", lorsque vous imprimez l'objet.
  • La méthode repr renvoie une expression Python valide, "Test ()", cela recréerait l'objet.

Lorsque vous imprimez une instance de ceci class :

t = Test()
print(t)
Copier après la connexion

Il affichera "membre de Test" sur la console, fournissant une représentation personnalisée et significative.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal