__str__和__repr__的用法
Posted myiuni
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__str__和__repr__的用法相关的知识,希望对你有一定的参考价值。
__repr__ 目的是为了表示清楚,是为开发者准备的。
__str__ 目的是可读性好,是为使用者准备的。
我的理解是 __repr__ 应该尽可能的表示出一个对象来源的类以及继承关系,方便程序员们了解这个对象。而 __str__ 就简单的表示对象,而不要让不懂编程的以为输出的是 bug。
>>> import datetime
>>> today = datetime.datetime.now()
>>> str(today)
‘2012-03-14 09:21:58.130922‘
>>> repr(today)
‘datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)‘
上表是来自 bitoffdev 的回答。
我们可以看到 str(today) 输出的很正常,哪个都看得懂。但是 repr(today) 的输出对不懂编程的就来说有点奇怪了,只懂一丢丢的还可能会以为自己搞出了啥幺蛾子呢。但是这对于有点经验的人来说这个就表示 today 对象是由 datetime 类实例化出来的。
以上是关于__str__和__repr__的用法的主要内容,如果未能解决你的问题,请参考以下文章