Defining a new instance attribute dynamically in Python
本问题已经有最佳答案,请猛点这里访问。
为什么可以为python中的每个类实例动态定义一个新属性,只要它不是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class NewStyle(object): pass class OldStyle: pass a = object() # This line raises AttributeError a.foo = 1 # All of these work fine a = Exception() a.foo = 1 a = OldStyle() a.foo = 1 a = NewStyle() a.foo = 1 |
在Python3中,这种行为似乎是相同的
来自python文档:
Note:
object does not have a__dict__ , so you can’t assign arbitrary attributes to an instance of theobject class.
号
一些类定义提供了一个
另见