使用Python,一个可经由任一下面的两种方法中的设定的实例属性:如何将属性分配给Python中的实例?
>>> class Foo(object):
pass
>>> a = Foo()
>>> a.x = 1
>>> a.x
1
>>> setattr(a, 'b', 2)
>>> a.b
2
人们也可以通过属性装饰分配属性。
>>> class Bar(object):
@property
def x(self):
return 0
>>> a = Bar()
>>> a.x
0
我的问题是,我怎样才能将一个属性分配给一个实例?
我的直觉是要尝试这样的事情......
>>> class Doo(object):
pass
>>> a = Doo()
>>> def k():
return 0
>>> a.m = property(k)
>>> a.m
<property object at 0x0380F540>
...但是,我得到这个奇怪的属性对象。类似的实验产生了类似的结果。我的猜测是,属性在某些方面与实例相比更密切相关,但我不知道内部工作是否足以理解这里发生的事情。
我敢肯定,他们需要这是每个实例。你的建议会影响所有实例。 –
啊! 1分钟前我! :) +1 – rubik
@罗斯 - 我知道,它说,在答案。它根本不可能添加一个属性到一个实例。看到我链接的线程。 – agf