关于Python 2.x中的属性动态分配
问题内容:
当我尝试将属性动态添加到对象类的实例时,出现AttributeError。但是,可以使用对象的子类实例来完成此操作。有人知道为什么吗?
>>> obj = object()
>>> obj.new_attr = "some value"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'object' object has no attribute 'new_attr'
>>> class MyClass(object):
... pass
...
>>> obj = MyClass()
>>> obj.new_attr = "some value"
>>> print obj.new_attr
some value
问题答案:
文档中有关于此的注释:
http://docs.python.org/3/library/functions.html#object
注意 :
object
没有__dict__
,因此您不能为object
该类的实例分配任意属性。
python邮件列表上也对此进行了讨论:
https://mail.python.org/pipermail/python-
list/2011-October/614249.html