str() und repr() werden beide verwendet, um eine Zeichenfolgendarstellung des Objekts zu erhalten.

  1. Beispiel für str():
    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    s = 'Hello, Geeks.'
    print (str(s))
    print (str(2.0/11.0))
    chevron_right
    
    
    filter_none
    
    

    Ausgabe:

    Hallo Geeks.
    0,181818181818
  2. .

  3. Beispiel für repr():
    filter_none

    bearbeiten
    schließen

    play_arrow

    Link
    Helligkeit_4
    Code

    s = 'Hello, Geeks.'
    print (repr(s))
    print (repr(2.0/11.0))
    chevron_right
    
    
    filter_none
    
    

    Ausgabe:

    "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() 
  
print (str(today)) 
  
print (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) 
  
print (str(t))   
print (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