1

所以python是动态的。我应该能够随意向类实例添加属性。

我正在尝试这样做:

spam = None
spam.eggs = []

但显然我无法将属性添加到None.

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

4

3 回答 3

7
class Bag(object):
  pass

spam = Bag()
spam.eggs = []
于 2013-02-08T16:30:54.160 回答
3

不,您可以将属性添加到允许它的对象类型。None, object, type,int等。人。不要,因为它们是不可变的。

于 2013-02-08T16:33:03.700 回答
2

在 Python 3.3+ 中使用types.SimpleNamespace

from types import SimpleNamespace

spam = SimpleNamespace(eggs=[])
print(spam) # -> namespace(eggs=[])
spam.rice = {}
print(spam) # -> namespace(eggs=[], rice={})
于 2013-02-08T17:02:18.560 回答