Classe personnalisée Python __str__ (exemples détaillés)

乌拉乌拉~
Libérer: 2018-08-23 13:37:55
original
2427 Les gens l'ont consulté

Dans l'article suivant, examinons ce que sont les classes personnalisées en python. Découvrez ce que sont les classes personnalisées Python et quel rôle les classes personnalisées Python peuvent jouer dans la programmation Python.

Lorsque vous voyez des noms de variables ou de fonctions sous la forme __xxx__ comme __slots__, veuillez faire attention. Ceux-ci ont des utilisations particulières en Python.

Nous savons déjà comment utiliser __slots__, et nous savons également comment utiliser la méthode __len__() pour permettre à la classe d'agir sur la fonction len().

De plus, il existe de nombreuses fonctions spéciales dans les classes Python qui peuvent nous aider à personnaliser les classes.

Classe personnalisée Python __str__ (exemples détaillés)

__str__

Nous définissons d'abord une classe Student et imprimons une instance :

>>> class Student(object):
...     def __init__(self, name):
...         self.name = name
...
>>> print(Student('Michael'))
<__main__.Student object at 0x109afb190>
Copier après la connexion

Imprimez un tas d'objets <__main__.Student à 0x109afb190>, ce qui a l'air assez moche.

Comment puis-je l'imprimer magnifiquement ? Il vous suffit de définir la méthode __str__() et de renvoyer une belle chaîne :

>>> class Student(object):
...     def __init__(self, name):
...         self.name = name
...     def __str__(self):
...         return &#39;Student object (name: %s)&#39; % self.name
...
>>> print(Student(&#39;Michael&#39;))
Student object (name: Michael)
Copier après la connexion

L'instance imprimée de cette manière est non seulement belle, mais permet également de voir facilement les données importantes qu'elle contient. l'instance.

Mais les amis prudents constateront qu'en tapant directement la variable sans l'imprimer, l'instance imprimée n'a toujours pas l'air bien :

>>> s = Student(&#39;Michael&#39;)
>>> s<__main__.Student object at 0x109afb310>
Copier après la connexion

C'est parce que l'affichage direct de l'appel à la variable n'est pas __str__ (), mais c'est __repr__(). La différence entre les deux est que __str__() renvoie la chaîne vue par l'utilisateur, tandis que __repr__() renvoie la chaîne vue par le développeur du programme. débogage.

La solution est de définir un autre __repr__(). Mais généralement, les codes de __str__() et __repr__() sont les mêmes, il existe donc une manière paresseuse d'écrire :

class Student(object):
    def __init__(self, name):
        self.name = name
    def __str__(self):
        return &#39;Student object (name=%s)&#39; % self.name
    __repr__ = __str__
Copier après la connexion

Ce qui précède est tout le contenu décrit dans cet article. avoir les connaissances pertinentes sur python custom class__str__ J'espère que vous pourrez utiliser les informations pour comprendre le contenu ci-dessus. J'espère que ce que j'ai décrit dans cet article vous sera utile et vous facilitera l'apprentissage de Python.

Pour plus de connaissances connexes, veuillez visiter la colonne Tutoriel Python du site Web php chinois.

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!