在我的程序中,我有25个不同的函数,分别为"task1"
,"task2"
,"task3"
等...
目前,我可以从一个单独的文件中调用这些函数,并在shell中执行它们:
import examplefilename
tasknum = str(input("Which task would you like to see? "))
task = "task" + tasknum
methodToCall = getattr(examplefilename, task)
result = methodToCall()
我所做的只会从另一个文件调用,但是如何从同一个文件中以这种方式执行函数?
答案 0 :(得分:3)
如果我的理解是正确的,那么函数在同一个文件中定义,您需要用户输入来调用它们,只需使用globals
而不是getattr
。
即,将getattr
替换为:
methodToCall = globals()[task] # it isn't a method, though
保持其余部分。
正如评论中所述,将input
与str
包裹在一起是多余的,input
已经返回一个字符串。