当我尝试动态地向对象类的实例添加属性时,我得到一个AttributeError.但是,可以使用object的子类实例来实现.有人知道为什么吗?
>>> 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
Run Code Online (Sandbox Code Playgroud)
文档中有一条关于此的说明:
http://docs.python.org/3/library/functions.html#object
" 注意:object没有__dict__,所以你不能将任意属性分配给对象类的实例."
在python邮件列表上也讨论了这个问题:
https://mail.python.org/pipermail/python-list/2011-October/614249.html