python中没有替换实例方法

时间:2014-06-04 09:12:33

标签: python python-3.x methods

我有以下Python代码:

>>> class My:
    def __repr__(self):
        return "My object"
    def __str__(self):
        return "My object"


>>> my = My()
>>> my.__repr__ = lambda: "I just changed repr"
>>> my.__repr__
<function <lambda> at 0x00000000033A91E0>
>>> repr(my)
'My object'

我无法理解为什么repr(my)不会返回__repr__的新值。我检查了其他功能,所有功能都以同样的方式工作。似乎Python首先检查类,而不是检查实例是否具有所需的方法。

是否可以在实例级别覆盖__repr__,而无需创建新类?

0 个答案:

没有答案