2011-06-12 76 views
2

我有一個定義數據屬性的類。簡單的python問題:訪問類數據成員

class channel: 
    def __init(self,var1, var2): 
     self.var1 = var1 
     self.var2 = var1 
     #etc 

到目前爲止那麼簡單。但是我想要做的是有一個方法來指定要使用哪個數據屬性,以便我可以一般地使用它來根據參數對不同的數據屬性執行相同的操作,例如(顯然這是不對的)

def fun(list_of_channels, var1): 
    for chan in list_of_channels: 
     #use chan.var1 

,但能夠使用VAR2作爲參數來訪問chan.var2如果我叫

fun(list_of_channels,var2) 

是否有明顯的方式做到這一點,我已經錯過了嗎?

回答

9

您可以使用getattr這樣的:

def fun(list_of_channels, attr_name): 
    for chan in list_of_channels: 
     attr = getattr(chan, attr_name) 
     ... 
+0

完美的謝謝! – Chris 2011-06-12 16:59:53

3

是你需要什麼getattr功能?

+0

是的!非常感謝 – Chris 2011-06-12 17:00:01

+1

@Chris,請[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)您認爲解決您的問題的答案。 – ulidtko 2011-06-12 17:02:18