str
soll eine Zeichenkettendarstellung der Daten des Objekts erzeugen. Wenn Sie Ihre eigene Klasse schreiben und Sie wollen str
um für Sie zu arbeiten, hinzufügen:
def __str__(self):
return "Some descriptive string"
print str(myObj)
wird anrufen myObj.__str__()
.
repr
ist eine ähnliche Methode, die im Allgemeinen Informationen über die Klasse info liefert. Für die meisten Kernbibliotheksobjekte, repr
erzeugt den Klassennamen (und manchmal auch einige Klasseninformationen) zwischen spitzen Klammern. repr
wird beispielsweise verwendet, indem das Objekt einfach in das Interaktionsfenster eingegeben wird, ohne dass die print
oder etwas anderes.
Sie können das Verhalten von repr
für Ihre eigenen Objekte definieren, so wie Sie das Verhalten von str
:
def __repr__(self):
return "Some descriptive string"
>>> myObj
in Ihrem Interaktionsbereich, oder repr(myObj)
wird zu folgenden Ergebnissen führen myObj.__repr__()
12 Stimmen
str(var)
? ist es das, wonach Sie suchen?2 Stimmen
Möchten Sie eine menschenlesbare Zeichenkettendarstellung der Daten? Oder wollen Sie eine byteorientierte Ansicht des Speichers, der die Daten enthält?
0 Stimmen
Seien Sie vorsichtig mit der Art der Daten, die Sie ändern möchten. Siehe Antwort unten
0 Stimmen
Erlaubt jede Klasse/jeder Typ in Python immer
str
ohne Fehler aufgerufen werden?