2011-06-12 11 views
2

데이터 속성을 정의하는 클래스가 있습니다.간단한 파이썬 질문 : 클래스 데이터 멤버에 액세스

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 

하지만

fun(list_of_channels,var2) 

내가보고 싶었어이이 작업을 수행 할 수있는 확실한 방법이 있나요

라고하면 chan.var2에 액세스 할 인수로 VAR2 사용할 수?

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

답변

9

이 같은 getattr를 사용할 수 있습니까?

+0

완벽한 감사합니다. – Chris

3

는 당신이 필요로하는 무엇을 getattr 기능입니다 :

+0

예! 고마워요. – Chris

+1

@Chris, 귀하의 질문을 해결한다고 생각하는 답변을 [수락] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) 주시기 바랍니다. – ulidtko

관련 문제