所以python是动态的。我应该能够毫不犹豫地向类实例添加属性。
我正在尝试这样做:
spam = None
spam.eggs = []
但显然我无法向None
添加属性。
如何将spam
定义为未定义的“空类”的实例,我可以在其中添加属性?
答案 0 :(得分:7)
class Bag(object):
pass
spam = Bag()
spam.eggs = []
答案 1 :(得分:3)
不,您可以向允许的对象类型添加属性。 None
,object
,type
,int
等。人。不要,因为它们是不变的。
答案 2 :(得分:1)
在Python 3.3+中使用types.SimpleNamespace
:
from types import SimpleNamespace
spam = SimpleNamespace(eggs=[])
print(spam) # -> namespace(eggs=[])
spam.rice = {}
print(spam) # -> namespace(eggs=[], rice={})