【发布时间】:2011-02-26 14:44:56
【问题描述】:
我知道我可以通过执行以下操作向对象动态添加实例方法:
import types
def my_method(self):
# logic of method
# ...
# instance is some instance of some class
instance.my_method = types.MethodType(my_method, instance)
稍后我可以调用instance.my_method(),self 将被正确绑定,一切正常。
现在,我的问题是:如何做完全相同的事情来获得使用 @property 装饰新方法的行为?
我猜是这样的:
instance.my_method = types.MethodType(my_method, instance)
instance.my_method = property(instance.my_method)
但是,这样做instance.my_method 会返回一个属性对象。
【问题讨论】:
-
@Bo Persson:虽然问题的标题 python: How to add property to a class dynamic? 基本相同,但我不相信它接受的答案(包括附加组件)一般地解决了这个问题。
-
@martineau - 似乎也没有其他人相信这一点,所以很早就结束了投票。
-
@BoPersson:我的立场是正确的,从技术上讲,added-on answer 中针对该问题的信息确实解决了一般问题。
-
这个类的其他实例不有这个属性重要吗?
标签: python