2012-12-26 75 views
3

在Python中,我很清楚可以在定義後向類添加成員。但是,有沒有辦法使用字符串的內容來命名成員?使用字符串動態添加類成員來命名它

例如,我可以這樣做:

class A: 
    pass 
A.foo = 10 

a = A() 
print a.foo 

不過是有一些方法來做到這一點:

name = "foo" 
class A: 
    pass 
A.[some trick here(name)] = 10 

a = A() 
print a.foo 

回答

10

使用setattr

setattr(A, 'foo', 10) 
+0

哇!非常感謝! (: – Rubens

4

是的!這可以使用getattrsetattr的組合來完成。

setattr(A, 'foo', 10) 
getattr(A, 'foo') // Returns 10