>>> class foo():
... @property
... def o(self):
... return 'o'
...
>>> f = foo()
>>> f.o
'o'
>>> f.__dict__['o'] = 'f'
>>> f.o
'f'
>>> class foo(object):
... @property
... def o(self):
... return 'o'
...
>>> f = foo()
>>> f.o
'o'
>>> f.__dict__['o'] = 'f'
>>> f.o
'o'
__dict__
集合刚刚没有出现。任何想法为什么?Python新风格类不能使用__dict__来更新属性属性
我想也许Python对待属性的内部不同,但我不确定它,如果你自己写一个属性类,该集合就会工作,否则不会。
你应该看一看以各种方式来改变python中的[attribute access](http://docs.python.org/2/reference/datamodel.html#customizing-attribute-access)。特别是'@ property'创建一个描述符(参见链接的材料来理解它是什么以及它是如何工作的)。 – Bakuriu