如何使用getattr从同一个文件中调用函数?

3 python function python-3.x

在我的节目,我有25个不同的功能命名"task1""task2""task3",等...此刻我可以从一个单独的文件中对这些函数调用,并做他们的外壳:

import examplefilename
tasknum = str(input("Which task would you like to see? "))
task = "task" + tasknum
methodToCall = getattr(examplefilename, task)
result = methodToCall()
Run Code Online (Sandbox Code Playgroud)

尽管我所做的只能从另一个文件中调用,所以如何从同一文件中以这种方式执行功能呢?

Jim*_*ard 5

如果我的理解是正确的,那么这些函数是在同一文件中定义的,并且您需要用户输入才能调用它们,只需使用globals代替即可getattr

也就是说,将替换为getattr

methodToCall = globals()[task]  # it isn't a method, though 
Run Code Online (Sandbox Code Playgroud)

其余保持原样。

作为一个评论还指出,包装inputstr是多余的这里,input已经返回一个字符串。