Maison >développement back-end >Tutoriel Python >Comment puis-je personnaliser la représentation sous forme de chaîne des classes Python à l'aide de métaclasses ?
Représentation de chaîne personnalisée pour les classes : une approche pythonique
En Python, définir votre propre représentation de chaîne pour les classes peut offrir un meilleur contrôle sur la façon dont la classe est présentée. Contrairement à la représentation par défaut qui ressemble à la
Considérez la classe suivante :
class foo(object): pass
Par défaut, la conversion de foo en chaîne donne :
>>> str(foo) "<class '__main__.foo'>"
Pour personnaliser cette représentation, vous pouvez implémenter soit __str__() ou __repr__() dans la métaclasse de la classe. Ces méthodes magiques sont chargées de renvoyer respectivement les représentations sous forme de chaîne lisibles et sans ambiguïté de la classe.
L'exemple suivant montre comment implémenter un __repr__() personnalisé dans une métaclasse :
class MC(type): def __repr__(self): return 'Wahaha!' class C(object): __metaclass__ = MC print(C)
Ce code affichera "Wahaha!" lorsque vous imprimez la classe C.
Si vous désirez une stringification lisible, utilisez __str__; pour des représentations sans ambiguïté, utilisez __repr__. Python 3 vous oblige à spécifier la métaclasse dans la définition de classe elle-même, comme ceci :
class MC(type): def __repr__(self): return 'Wahaha!' class C(object, metaclass=MC): pass print(C)
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!