如何在python中定义匿名类型

时间:2013-02-08 16:29:20

标签: python dynamic python-2.7

所以python是动态的。我应该能够毫不犹豫地向类实例添加属性。

我正在尝试这样做:

spam = None
spam.eggs = []

但显然我无法向None添加属性。

如何将spam定义为未定义的“空类”的实例,我可以在其中添加属性?

3 个答案:

答案 0 :(得分:7)

class Bag(object):
  pass

spam = Bag()
spam.eggs = []

答案 1 :(得分:3)

不,您可以向允许的对象类型添加属性。 Noneobjecttypeint等。人。不要,因为它们是不变的。

答案 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={})