str() vs repr() in Python
str() und repr() werden beide verwendet, um eine Zeichenfolgendarstellung des Objekts zu erhalten.
- Beispiel für str():
filter_none
bearbeiten
schließenplay_arrow
Link
Helligkeit_4
Codes
=
'Hello, Geeks.'
print
(
str
(s))
print
(
str
(
2.0
/
11.0
))
chevron_rightfilter_noneAusgabe:
Hallo Geeks. 0,181818181818
- Beispiel für repr():
filter_none
bearbeiten
schließenplay_arrow
Link
Helligkeit_4
Codes
=
'Hello, Geeks.'
print
(
repr
(s))
print
(
repr
(
2.0
/
11.0
))
chevron_rightfilter_noneAusgabe:
"Hallo, Geeks." 0,18181818181818182
.
Anhand der obigen Ausgabe können wir sehen, ob wir einen String mit der Funktion repr() drucken, dann wird er mit zwei Anführungszeichen gedruckt, und wenn wir einen Wert berechnen, erhalten wir einen genaueren Wert als die Funktion str().
Es folgen Unterschiede:
- str() wird zum Erstellen der Ausgabe für den Endbenutzer verwendet, während repr() hauptsächlich zum Debuggen und Entwickeln verwendet wird. Das Ziel von repr ist es, eindeutig und strs lesbar zu sein . Wenn wir beispielsweise den Verdacht haben, dass ein Float einen kleinen Rundungsfehler aufweist, zeigt uns repr an, während str dies möglicherweise nicht tut.
- repr() berechnet die "offizielle" Zeichenfolgendarstellung eines Objekts (eine Darstellung, die alle Informationen über das Objekt enthält) und str() wird verwendet, um die "informelle" Zeichenfolgendarstellung eines Objekts zu berechnen (eine Darstellung, die zum Drucken des Objekts nützlich ist Objekt).
- Die integrierte Funktion print-Anweisung und str() verwendet __str__, um die Zeichenfolgendarstellung des Objekts anzuzeigen, während die integrierte Funktion repr() __repr__ verwendet, um das Objekt anzuzeigen.
Lassen Sie dies anhand eines Beispiels verstehen: -
import
datetime
today
=
datetime.datetime.now()
(
str
(today))
(
repr
(today))
Ausgabe:
2016-02-22 19: 32: 04.078030 datetime.datetime (2016, 2, 22, 19, 32, 4, 78030)
str() zeigt das heutige Datum so an, dass der Benutzer Datum und Uhrzeit verstehen kann.
repr() druckt die "offizielle" Darstellung eines Datums-Zeit-Objekts (bedeutet, dass wir das Objekt mithilfe der "offiziellen" Zeichenfolgendarstellung rekonstruieren können).
Wie können sie für unsere eigenen definierten Klassen funktionieren?
Eine benutzerdefinierte Klasse sollte auch ein __repr__ haben, wenn wir detaillierte Informationen zum Debuggen benötigen. Und wenn wir der Meinung sind, dass es nützlich wäre, eine String-Version für Benutzer zu haben, erstellen wir eine __str__- Funktion.
class
Complex
:
def
__init__(
self
, real, imag):
self
.real
=
real
self
.imag
=
imag
def
__repr__(
self
):
return
'Rational(%s, %s)'
%
(
self
.real,
self
.imag)
def
__str__(
self
):
return
'%s + i%s'
%
(
self
.real,
self
.imag)
t
=
Complex
(
10
,
20
)
(
str
(t))
(
repr
(t))
Ausgabe:
10 + i20 Rational (10, 20)
Dieser Artikel wurde von Arpit Agarwal verfasst. Wenn Ihnen GeeksforGeeks gefällt und Sie einen Beitrag leisten möchten, können Sie auch einen Artikel schreiben und Ihren Artikel an contrib@geeksforgeeks.org senden. Sehen Sie sich Ihren Artikel auf der GeeksforGeeks-Hauptseite an und helfen Sie anderen Geeks.
Bitte schreiben Sie Kommentare, wenn Sie etwas Falsches finden oder weitere Informationen zu dem oben diskutierten Thema teilen möchten