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.
__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>
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 'Student object (name: %s)' % self.name ... >>> print(Student('Michael')) Student object (name: Michael)
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('Michael') >>> s<__main__.Student object at 0x109afb310>
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 'Student object (name=%s)' % self.name __repr__ = __str__
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!