2014-06-23 2 views
1

매개 변수에 따라 함수를 실행하는 효율적인 방법은 무엇입니까? 나는 x가 어떻게 될지 항상 알게 될 것이므로 이러한 모든 가능성을 목록에 저장할 수는 있지만 어떻게하면 적절한 함수를 호출하는 데 도움이 될까요?매개 변수를 가져 와서 해당 매개 변수를 기반으로 함수를 실행하십시오.

문맥에 대해서만 x에 대해 12 가지 가능성이 있습니다. 문장이 잘못되어 있으면 12 가지를 쓰는 느낌이 들게됩니다.

def run(x): 
    if x == "dog": 
     dogfunction() 
    if x == "cat": 
     catfunction() 
+0

예제가 전혀 작동하지 않습니다. = (하나의 등호는 할당이며 평등 검사가 아니며 == 거기에 있길 원함 – reindeer

+0

죄송합니다. 코드 예제를 얻기 위해 무언가를 입력했습니다. –

답변

5

당신은 할 수 :

def run(x): 
    functions = { 
     "dog": dogfunction, 
     "cat": catfunction, 
    } 
    functions[x]() 

이 명시 적으로 함수에 문자열을 매핑합니다. 또한 문자열이 함수 사전에 없으면 KeyError을 발생시킵니다.

+2

함수'btw '밖에서'functions' 사전을 저장하는 것이 좋습니다. 그래서 모든 전화를 할 때마다 다시 만들 필요가 없습니다. – poke

+0

감사합니다. 이것이 제가 필요한 것입니다. –

관련 문제