【发布时间】:2017-12-14 21:09:22
【问题描述】:
我只看到了在类定义中设置__repr__ 方法的示例。是否可以在函数定义中或定义函数后更改__repr__?
我尝试过没有成功...
>>> def f():
pass
>>> f
<function f at 0x1026730c8>
>>> f.__repr__ = lambda: '<New repr>'
>>> f
<function __main__.f>
【问题讨论】:
-
虽然装饰器很有趣,但似乎更简单的答案是首先不创建函数,而是直接使用
__repr__和__call__方法创建一个类,然后可以调用就好像它是一个函数一样。