首页 > 解决方案 > 为什么在运行时覆盖对象的 __str__ 不起作用?

问题描述

给定以下交互式 Python 解释器会话:

>>> class c(object): pass 
>>> o=c()
>>> str(o)
'<__main__.c object at 0x7f865da68820>'
>>> o.__str__ = lambda _: 'test'
>>> str(o)
'<__main__.c object at 0x7f865da68820>'

我希望stron的第二次调用o会说'test'.

我在这里的假设有什么问题,然后如何在运行时覆盖对象的字符串表示形式?

标签: pythonmagic-methods

解决方案


推荐阅读