2012-07-11 3 views
3

내 응용 프로그램에는 다양한 작업을 수행하는 함수로 가득 찬 클래스가 있습니다. 이 연산은 1 개의 사전 키와 관련이 있습니다. 어떻게 사전 키를 해당 기능과 연관시킬 수 있습니까? 이 도구의 목표는 일련의 키가 주어질 때 적절한 함수 세트를 사용하는 것입니다.어떻게 사전 키를 함수와 연관시킬 수 있습니까?

이 내가 현재 그것을 해결하는 방법입니다

class MyClass: 

    def FuncA(self): 
     # Some code ----------------------------- 

    def FuncB(self): 
     # Some code ----------------------------- 

myDict["Objective A"] = MyClass.FuncA() 
myDict["Objective B"] = MyClass.FuncB() 

인해 내 프로그램을 수시로 변경할 수 있습니다 사용되는 키 세트의 특성. 그러므로 내가 가지고있는 것처럼 하드 코딩하는 것은 말이되지 않습니다. 내 키 집합을 반복하고 적절한 기능을 실행할 수 있기를 원합니다. ObjectiveA는 FuncA와 연관되어 있음을 기억하십시오. 따라서 ObjectiveA가 내 키 목록에 나타나면 FuncA를 호출하여 일부 연산을 처리하고 해당 값 쌍을 채워야합니다. 이 문제를 꿈꾸다

: MyClass.FuncA

for k in myDict.keys(): 
    myDict[k] = MyClass.TheAssociatedFunction() 

답변

11
myDict["Objective A"] = MyClass.FuncA() 

동료 반환 값. 당신은 함수 자체를 연결할 경우

myDict["Objective A"] = MyClass.FuncA 
myDict["Objective B"] = MyClass.FuncB 

그런 다음 당신은 직접 호출 할 수 있습니다 :

myDict["Objective A"]() 
+2

주들이'classmethod' 또는'로 장식했다하지 않는 한이 방법으로 호출하는 방법이 작동하지 않습니다 staticmethod' - 그렇지 않으면 인스턴스를 전달해야합니다. (좋은 대답은 +1) – mgilson

+0

알았어요, 고마워! –

관련 문제