Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie die Funktion __str__() in Python, um die Zeichenfolgendarstellung eines Objekts zu definieren

So verwenden Sie die Funktion __str__() in Python, um die Zeichenfolgendarstellung eines Objekts zu definieren

WBOY
WBOYOriginal
2023-08-21 22:55:541235Durchsuche

So verwenden Sie die Funktion __str__() in Python, um die Zeichenfolgendarstellung eines Objekts zu definieren

So verwenden Sie die Funktion __str__() in Python, um die String-Darstellung eines Objekts zu definieren

In Python verfügt jedes Objekt über eine String-Darstellung, die zur Anzeige seines Inhalts beim Drucken des Objekts verwendet wird. Oft reicht die Standard-String-Darstellung eines Objekts für unsere Anforderungen nicht aus. Um die String-Darstellung eines Objekts anzupassen, können wir die Funktion __str__() in Python verwenden. Die Funktion

__str__() ist eine spezielle Methode, die zum Konvertieren eines Objekts in eine Zeichenfolge verwendet wird. Wenn wir ein Objekt drucken, ruft Python automatisch die Funktion __str__() des Objekts auf und gibt seinen Rückgabewert als Zeichenfolge aus.

Hier ist ein einfaches Beispiel, das zeigt, wie man eine String-Darstellung eines Objekts mit der Funktion __str__() in Python definiert:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"Person(name={self.name}, age={self.age})"

person = Person("Tom", 25)
print(person)

Im obigen Code haben wir eine Klasse namens Person definiert, die zwei Attribute hat: Name und Alter. Wir definieren eine __str__()-Funktion in der Klasse und geben eine formatierte Zeichenfolge zurück, die die Attributwerte des Objekts enthält.

Wenn wir ein Person-Objekt erstellen und drucken, ruft Python automatisch die Funktion __str__() des Objekts auf und gibt seinen Rückgabewert aus. Das Ausgabeergebnis lautet:

Person(name=Tom, age=25)

Durch die Definition der Funktion __str__() können wir die Attributwerte des Objekts intuitiver anzeigen, was uns das Debuggen und Verstehen des Programms erleichtert. Wir können das String-Format in der Funktion __str__() an unsere eigenen Bedürfnisse anpassen und den gedruckten Inhalt genau steuern.

Neben der Funktion __str__() bietet Python auch eine weitere spezielle Methode __repr__(). Die von der Methode __repr__() zurückgegebene Zeichenfolge sollte ein gültiger Python-Ausdruck sein, der zum Erstellen des Objekts verwendet werden kann. Wenn wir die Funktion __str__() nicht definieren, ruft Python standardmäßig die Funktion __repr__() des Objekts auf, um das Objekt zu drucken.

Hier ist ein Beispiel, das zeigt, wie die Methode __repr__() verwendet wird:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f"Person(name={self.name}, age={self.age})"

person = Person("Tom", 25)
print(person)

Dieser Code ist fast derselbe wie der vorherige Beispielcode, der einzige Unterschied besteht darin, dass wir die Methode __repr__() anstelle der Methode __str__() verwenden. Methode. Die Ausgabe ist immer noch dieselbe:

Person(name=Tom, age=25)

Es ist zu beachten, dass die Methode __str__() hauptsächlich zur Bereitstellung einer beschreibenden Zeichenfolge des Objekts verwendet wird, während die Methode __repr__() hauptsächlich zur Bereitstellung einer Zeichenfolge zur Rekonstruktion des Objekts verwendet wird . In der tatsächlichen Entwicklung können wir je nach Bedarf auswählen, welche Methode verwendet werden soll, oder zwei Methoden gleichzeitig definieren, um eine umfassendere Zeichenfolgendarstellung bereitzustellen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Funktion __str__() in Python, um die Zeichenfolgendarstellung eines Objekts zu definieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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