str(obj)没有在python中调用obj .__ str __()

时间:2017-12-17 14:22:30

标签: python python-3.x

在python文档herehere中:

  

str(object)返回object.__str__(),这是对象的“非正式”或可打印的字符串表示形式。

但我认为这是错误的:

Python 3.5.2 (default, Nov 23 2017, 16:37:01)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: class A:
   ...:     def __str__(self):
   ...:         return 'a'
   ...:

In [2]: def f():
   ...:     return 'b'
   ...:

In [3]: a=A()

In [4]: a.__str__=f

In [5]: a.__str__()
Out[5]: 'b'

In [6]: str(a)
Out[6]: 'a'

In [7]: repr(a)
Out[7]: '<__main__.A object at 0x7ffd387c71d0>'
根据文档,

str(a)未返回a.__str__()

这种行为是否记录在任何地方?或者这是一个错误?

0 个答案:

没有答案