我的程序中有一个字符串列表,我们可以这样说:
lst = ["ONE", "TWO", "THREE"]
我让用户通过输入选择其中一个(我确保他们输入的内容实际上是在lst中)。
现在,我的实际列表比这长,所以if语句会有大量的代码。我希望有一种方法可以使用变量名称或与函数名称相同的字符串来调用函数。
所以让我说我有:
def ONE():
#does something
lst[0]()
现在,我知道这肯定不行,但有办法做到这一点吗?
答案 0 :(得分:1)
def One():
#do something
funcDict = {'One':One}
funcDict[input]()
答案 1 :(得分:0)
是的,就像这样:
In [5]: lst = ["ONE", "TWO", "THREE"]
In [6]: def ONE():
print 'hello world!'
...:
In [7]: locals()[lst[0]]()
hello world!