需要帮助来调用函数

时间:2010-12-09 10:42:00

标签: python

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)

我得到索引。所以我想要一些像index是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()

感谢。

感谢。

2 个答案:

答案 0 :(得分:8)

在Python中,函数是first-class objects,因此您可以将它们放入字典中:

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

然后调用相关功能,使用:

user = fn[subject]()

答案 1 :(得分:0)

(相对)不安全的方式是

def add_user():
    (...)

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

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