2010-12-09 5 views
1
List_of_subject = ['add user', 'modify user', delete user'] and so on 

나는 subject라는 변수가 있습니다. 그래서 주제에 따라 다른 함수가 호출됩니다. 은 add_user, modify_user, delete_user 등입니다.에는 함수 호출에 대한 도움이 필요합니다.

내 제목이 'add_user'인 경우 add_user 기능을 호출하고 싶습니다. 일반 함수 호출처럼 호출 할 수 있습니다. 그러나 내 list_of_subject는 계속 증가하고 있습니다.

내가 할 수있는 :

List_of_subject.index(subject) 

내가 인덱스를 얻을. 그래서 인덱스가 1 일 때 add_user 함수를 호출 할 때와 같은 것을 원한다. 기본적으로 list_of_subject 목록에 내 함수를 연결하려고합니다. 또는 괜찮는이 작업을 수행하는`

if subject in list_of_subject: 
    if subject == 'add user' : 
     user = add_user() 
    else if subject == ' modify user' 
     user = modify_user() 

감사합니다.

감사합니다. 의

user = fn[subject]() 

답변

8

, 기능은 사전에 넣어 수 있도록 first-class objects 있습니다 그것을 할 것입니다

def add_user(): 
    (...) 

list_of_subject = ['add_user', 'modify_user', 'delete_user'] 

if subject in list_of_subject: 
    exec(subject + "()") 
+0

반환 값을 저장할 수있는 방법은 무엇입니까. – laspal

+0

var = fn [subject] (매개 변수) – laspal

0

A (상대적으로) 안전하지 않은 방법 :

fn = {'add user': add_user, 'modify user': modify_user} 

다음 관련 기능 사용을 호출하려면 :

파이썬에서
관련 문제