Краткое обсуждение разницы между Python str() и repr().

 

В этой статье разница между Python str() и repr() в основном представлена ​​на примерах. В статье она подробно представлена ​​на примерах кода. Она имеет определенную справочную ценность для обучения или работы каждого. Друзья, которым она нужна, могут обратиться к ней.

В этой статье разница между Python str() и repr() в основном представлена ​​на примерах. В статье она подробно представлена ​​на примерах кода. Она имеет определенную справочную ценность для обучения или работы каждого. Друзья, которым она нужна, могут обратиться к ней.

разница

На самом деле, самое большое отличие — это его практичность: str() в основном используется для вывода некоторой информации конечному пользователю, а repr() в основном используется для отладки; в то же время цель последнего — устранить некоторые неясности. (например, точность чисел с плавающей запятой), а первый — в основном для удобства чтения.

использовать

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'

Если вы посмотрите внимательно, разницы в точности на самом деле нет; но когда вы используете Python2, вы обнаружите разницу:

1

2

3

4

>>> eval('2.0/11')

0.18181818181818182

>>> print(2.0/11)

0.181818181818

Итак, еще один пример:

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

Видно, что первый более читаем, а второй выводит тип и значение, что больше подходит для отладки;

выполнить

Оба реализованы посредством встроенных функций; посмотрите в официальной документации, где говорится, что repr()

Возвращает строку, содержащую печатное представление объекта.

Класс может контролировать то, что эта функция возвращает для своих экземпляров, определив метод __repr__().

Это означает, что вы можете настроить эту функцию и реализовать собственную функцию repr() (то же самое для str), как показано ниже:

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'

Выше приведено все содержание этой статьи.Я надеюсь, что она будет полезна для изучения каждому.

Источник: Weidian Reading    https://www.weidianyuedu.com.

рекомендация

отblog.csdn.net/weixin_45707610/article/details/131782485