Heim > Backend-Entwicklung > Python-Tutorial > Wie überschreibe ich „__str__' und „__repr__' für die benutzerdefinierte Druckausgabe von Klasseninstanzen?

Wie überschreibe ich „__str__' und „__repr__' für die benutzerdefinierte Druckausgabe von Klasseninstanzen?

Susan Sarandon
Freigeben: 2025-01-03 04:45:38
Original
502 Leute haben es durchsucht

How to Override `__str__` and `__repr__` for Customized Print Output of Class Instances?

So passen Sie die Zeichenfolgendarstellung von Klasseninstanzen mit print() an

Beim Drucken von Instanzen einer Klasse zeigt das Standardverhalten häufig an Speicherort des Objekts. Um die Zeichenfolgendarstellung anzupassen und zu steuern, was beim Drucken angezeigt wird, können Sie zwei spezielle Methoden implementieren: str und __repr__.

__str__: Definieren der für Menschen lesbaren Zeichenfolgendarstellung

Die Methode str definiert die Zeichenfolgendarstellung eines Objekts für den allgemeinen Gebrauch. Es wird aufgerufen, wenn Sie print() oder str() für das Objekt aufrufen. Durch Überschreiben von __str__ können Sie die benutzerdefinierte Ausgabe definieren, die beim Drucken angezeigt wird.

__repr__: Definieren der Zeichenfolgendarstellung für das Debuggen

Der repr Die Methode definiert die Zeichenfolgendarstellung, die für Debugging-Zwecke vorgesehen ist. Es wird aufgerufen, wenn Sie repr() für das Objekt aufrufen oder wenn Sie str__ nicht definieren. Die __repr-Darstellung sollte ein gültiger Python-Ausdruck sein, der das Objekt ergibt.

Beispiel

So passen Sie die Zeichenfolgendarstellung Ihrer Klasseninstanzen an:

class Test:
    def __init__(self):
        self.a = 'foo'

    def __str__(self):
        return "member of Test"

    def __repr__(self):
        return "Test()"
Nach dem Login kopieren

Im Beispiel oben:

  • Die Die Methode str gibt eine für Menschen lesbare Zeichenfolge „member of Test“ zurück, wenn Sie das Objekt drucken.
  • Die Methode repr gibt einen gültigen Python-Ausdruck „Test“ zurück ()“, das würde das Objekt neu erstellen.

Wenn Sie eine Instanz davon drucken Klasse:

t = Test()
print(t)
Nach dem Login kopieren

Es wird „Mitglied von Test“ auf der Konsole angezeigt und bietet eine benutzerdefinierte und aussagekräftige Darstellung.

Das obige ist der detaillierte Inhalt vonWie überschreibe ich „__str__' und „__repr__' für die benutzerdefinierte Druckausgabe von Klasseninstanzen?. 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