Eine kurze Diskussion über den Unterschied zwischen Python str() und repr()

 

In diesem Artikel wird der Unterschied zwischen Python str () und repr () hauptsächlich anhand von Beispielen vorgestellt. Der Artikel stellt ihn anhand von Beispielcode im Detail vor.

In diesem Artikel wird der Unterschied zwischen Python str () und repr () hauptsächlich anhand von Beispielen vorgestellt. Der Artikel stellt ihn anhand von Beispielcode im Detail vor.

der Unterschied

Tatsächlich ist der größte Unterschied seine Praktikabilität: str() wird hauptsächlich verwendet, um einige Informationen an den Endbenutzer auszugeben, während repr() hauptsächlich zum Debuggen verwendet wird; gleichzeitig besteht das Ziel von letzterem darin, einige Unklarheiten zu beseitigen (z. B. die Genauigkeit von Gleitkommazahlen), während ersteres hauptsächlich der Lesbarkeit dient.

verwenden

1

2

3

4

5

6

7

8

9

In [12]: s = 'abc'

In [13]: print(str(s))

abc

In [14]: print(2.0/11)

0.18181818181818182

In [15]: repr(s)

Out[15]: "'abc'"

In [16]: repr(2.0/11)

Out[16]: '0.18181818181818182'

Wenn Sie genau hinschauen, gibt es eigentlich keinen Unterschied in der Genauigkeit; wenn Sie jedoch Python2 verwenden, werden Sie den Unterschied feststellen:

1

2

3

4

>>> eval('2.0/11')

0.18181818181818182

>>> print(2.0/11)

0.181818181818

Also noch ein Beispiel:

1

2

3

4

5

6

7

8

9

10

In [17]: import datetime

In [18]: n = datetime.datetime.now()

In [19]: print(str(n)

  ...: )

2020-01-16 09:22:13.361995

In [20]: repr(n)

Out[20]: 'datetime.datetime(2020, 1, 16, 9, 22, 13, 361995)'

Es ist ersichtlich, dass ersteres besser lesbar ist und letzteres Typ und Wert ausgibt, was für das Debuggen besser geeignet ist.

erreichen

Beide werden durch integrierte Funktionen implementiert; schauen Sie sich die offizielle Dokumentation an, in der repr() steht.

Gibt eine Zeichenfolge zurück, die eine druckbare Darstellung eines Objekts enthält.

Eine Klasse kann steuern, was diese Funktion für ihre Instanzen zurückgibt, indem sie eine __repr__()-Methode definiert.

Das bedeutet, dass Sie diese Funktion anpassen und Ihr eigenes repr() implementieren können (dasselbe gilt für str), wie folgt:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

In [35]: class TestClass:

  ...:   def __init__(self, name, age):

  ...:     self.name = name

  ...:     self.age = age

  ...:   def __repr__(self):

  ...:     return 'repr: ' + self.name + ' ,' + self.age

  ...:   def __str__(self):

  ...:     return self.name + ' ,' + self.age

  ...:

   

In [38]: tt = TestClass('tony', '23')

In [39]: repr(tt)

Out[39]: 'repr: tony ,23'

In [40]: str(tt)

Out[40]: 'tony ,23'

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich sein wird.

Quelle: Weidian Reading    https://www.weidianyuedu.com

Ich denke du magst

Origin blog.csdn.net/weixin_45707610/article/details/131782485
Empfohlen
Rangfolge