2013-02-08 77 views
1

因此python是動態的。我應該可以將屬性添加到類實例中。如何在python中定義一個匿名類型

我試圖做到這一點:

spam = None 
spam.eggs = [] 

但顯然我的屬性不添加到None

如何定義spam爲未定義的「空班」的一個實例,其作爲我走,我可以添加屬性?

+2

沒有,你可以將屬性添加到對象,該對象*允許它*類型。 'None'和'type'和'int'不會,因爲它們是不可變的。 – 2013-02-08 16:32:23

+1

爲什麼不使用字典? – 2013-02-08 17:43:41

回答

7
class Bag(object): 
    pass 

spam = Bag() 
spam.eggs = [] 
+0

所以我需要先定義一個類然後呢? – David 2013-02-08 16:31:14

+0

是的。你甚至不能將屬性添加到'object'的實例。 – 2013-02-08 16:31:46

+0

「(object)」位是什麼意思?爲什麼不只是'班袋:'? – David 2013-02-08 16:32:46

3

不,你可以將屬性添加到對象類型允許它None,object,type,int et。人。不要,因爲它們是不可變的。

1

在Python 3.3+使用types.SimpleNamespace

from types import SimpleNamespace 

spam = SimpleNamespace(eggs=[]) 
print(spam) # -> namespace(eggs=[]) 
spam.rice = {} 
print(spam) # -> namespace(eggs=[], rice={})