Wie passt man die String-Darstellung einer Klasse in Python an?

Susan Sarandon
Freigeben: 2024-11-11 04:16:02
Original
335 Leute haben es durchsucht

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

Benutzerdefinierte String-Darstellung für Klassen in Python

Betrachten Sie die folgende Klasse:

class foo(object):
    pass
Nach dem Login kopieren

Die Standard-String-Darstellung von Diese Klasse ist:

>>> str(foo)
"<class '__main__.foo'>"
Nach dem Login kopieren

Um die Zeichenfolgendarstellung der Klasse selbst (nicht Instanzen der Klasse) anzupassen, verwenden Sie das Metaklassenkonzept. Eine Metaklasse ist eine Klasse, die andere Klassen erstellt und so die Anpassung ihres Verhaltens ermöglicht.

Implementieren Sie die Methoden __str__() oder __repr__() innerhalb der Metaklasse der Klasse. Die Methode __str__() bietet eine lesbare Zeichenfolgendarstellung, während __repr__() eine eindeutige Darstellung bietet.

class MC(type):
  def __repr__(self):
    return 'Customized class!'

class C(object):
  __metaclass__ = MC

print(C)
Nach dem Login kopieren

Ausgabe:

Customized class!
Nach dem Login kopieren
Nach dem Login kopieren

Ändern Sie den Code für Python 3 wie folgt:

class MC(type):
  def __repr__(self):
    return 'Customized class!'

class C(object, metaclass=MC):
    pass


print(C)
Nach dem Login kopieren

Ausgabe:

Customized class!
Nach dem Login kopieren
Nach dem Login kopieren

Durch die Implementierung der Methoden __str__() oder __repr__() in der Metaklasse können Sie eine benutzerdefinierte Zeichenfolgendarstellung definieren, die beim Drucken angezeigt wird Klasse.

Das obige ist der detaillierte Inhalt vonWie passt man die String-Darstellung einer Klasse in Python an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage