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

时间:2016-12-14 18:35:28

标签: python function python-3.x

在我的程序中,我有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()

我所做的只会从另一个文件调用,但是如何从同一个文件中以这种方式执行函数?

1 个答案:

答案 0 :(得分:3)

如果我的理解是正确的,那么函数在同一个文件中定义,您需要用户输入来调用它们,只需使用globals而不是getattr

即,将getattr替换为:

methodToCall = globals()[task]  # it isn't a method, though 

保持其余部分。

正如评论中所述,将inputstr包裹在一起是多余的,input已经返回一个字符串。