Comment personnaliser la représentation sous forme de chaîne d'une classe en Python ?

Susan Sarandon
Libérer: 2024-11-11 04:16:02
original
330 Les gens l'ont consulté

How to Customize the String Representation of a Class in Python?

Représentation de chaîne personnalisée pour les classes en Python

Considérez la classe suivante :

class foo(object):
    pass
Copier après la connexion

La représentation sous forme de chaîne par défaut de cette classe est :

>>> str(foo)
"<class '__main__.foo'>"
Copier après la connexion

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)
Copier après la connexion

Sortie :

Customized class!
Copier après la connexion
Copier après la connexion

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)
Copier après la connexion

Résultat :

Customized class!
Copier après la connexion
Copier après la connexion

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!

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