Représentation de chaîne personnalisée pour les classes en Python
Considérez la classe suivante :
class foo(object): pass
La représentation sous forme de chaîne par défaut de cette classe est :
>>> str(foo) "<class '__main__.foo'>"
Pour personnaliser la représentation sous forme de chaîne de la classe elle-même (et non les instances de la classe), utilisez le concept de métaclasse. Une métaclasse est une classe qui crée d'autres classes, permettant d'ajuster leur comportement.
Implémentez les méthodes __str__() ou __repr__() au sein de la métaclasse de la classe. La méthode __str__() fournit une représentation sous forme de chaîne lisible, tandis que __repr__() offre une représentation sans ambiguïté.
class MC(type): def __repr__(self): return 'Customized class!' class C(object): __metaclass__ = MC print(C)
Sortie :
Customized class!
Pour Python 3, modifiez le code comme suit :
class MC(type): def __repr__(self): return 'Customized class!' class C(object, metaclass=MC): pass print(C)
Résultat :
Customized class!
En mettant en œuvre le __str__() ou __repr__() dans la métaclasse, vous pouvez définir une représentation sous forme de chaîne personnalisée qui sera affichée lorsque vous imprimerez la classe.
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!