Parler de la différence entre Python str() et repr()

 

Cet article présente principalement la différence entre Python str() et repr() à travers des exemples. L'article le présente en détail à travers un exemple de code. Il a une certaine valeur d'apprentissage de référence pour les études ou le travail de chacun. Les amis qui en ont besoin peuvent s'y référer.

Cet article présente principalement la différence entre Python str() et repr() à travers des exemples. L'article le présente de manière très détaillée à travers un exemple de code. Il a une certaine valeur d'apprentissage de référence pour les études ou le travail de chacun. Les amis qui en ont besoin peuvent s'y référer.

la différence

En fait, la plus grande différence réside dans son côté pratique : str() est principalement utilisé pour fournir des informations à l'utilisateur final, tandis que repr() est principalement utilisé pour le débogage ; en même temps, le but de ce dernier est d'éliminer certaines ambiguïtés. (comme la précision des nombres à virgule flottante), tandis que le premier est principalement destiné à la lisibilité.

utiliser

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'

Si vous regardez attentivement, il n'y a en réalité aucune différence de précision ; mais lorsque vous utilisez Python2, vous constaterez la différence :

1

2

3

4

>>> eval('2.0/11')

0.18181818181818182

>>> print(2.0/11)

0.181818181818

Donc autre exemple :

1

2

3

4

5

6

7

8

9

dix

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)'

On peut voir que le premier est plus lisible, et le second imprime le type et la valeur, ce qui est plus approprié pour le débogage ;

accomplir

Les deux sont implémentés via des fonctions intégrées ; consultez la documentation officielle indiquant repr()

Renvoie une chaîne contenant une représentation imprimable d'un objet.

Une classe peut contrôler ce que cette fonction renvoie pour ses instances en définissant une méthode __repr__().

Cela signifie que vous pouvez personnaliser cette fonction et implémenter votre propre repr() (idem pour str), comme suit :

1

2

3

4

5

6

7

8

9

dix

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'

Ce qui précède représente l’intégralité du contenu de cet article et j’espère qu’il sera utile à l’étude de chacun.

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

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45707610/article/details/131782485
conseillé
Classement