def function():
print "In function"
return
available_functions = {'function':function}
d = raw_input('Enter the def name: ')
available_functions[d]()
输出:
Enter the def name: function
In function
定义在字典中的可用功能。您可以使用它来确定是否存在这样的功能。然后,你只需要调用你的字典中映射的那个。
available_functions = {'function':function}
,将输入function
映射到函数名称function
。它是通过这条线叫:如果用户通过一个不存在的功能available_functions[d]()
,你会得到一个关键的错误:
Enter the def name: nonasdf
Traceback (most recent call last):
File "in_test.py", line 11, in <module>
available_functions[d]()
KeyError: 'nonasdf'
你可以用一个try/except
的available_functions[d]()
各地捕捉到这一点,并输出更友好的消息:
try:
available_functions[d]()
except KeyError:
print "Function doesn't exist"
你应该使用'raw_input'而不是'input',并且你应该把函数放在字典'{'function':function}'中。 – jonrsharpe 2014-10-08 15:53:14
或者,您可以使用'exec()'执行它们的输入。 – Scironic 2014-10-08 15:55:36
@Scironic很少(如果有的话)一个可接受的方法 – jonrsharpe 2014-10-08 15:56:40