Even 参考文章

关于 str() 和 repr() 的区别

str()和repr()输出的都是 str 类型

>>> a = 10
>>> type(str(a))
<class 'str'>
>>> type(repr(a))
<class 'str'>

但是 str() 更注重可读性,repr() 更注重数据本身的信息:

>>> from datetime import datetime
>>> now = datetime.now()
>>> print(str(now))
2017-04-22 15:41:33.012917
>>> print(repr(now))
datetime.datetime(2017, 4, 22, 15, 41, 33, 12917)

结论:

  • str() 的输出追求可读性,输出格式要便于理解,适合用于输出内容到用户终端。
  • repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用。