在我的程序中,我有 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()
虽然我所做的只会从不同的文件调用,但我如何从同一文件以这种方式执行函数?
最佳答案
如果我的理解是正确的,这些函数定义在同一个文件中并且您需要用户输入来调用它们,只需使用 globals
而不是 getattr
。
也就是说,将 getattr
替换为:
methodToCall = globals()[task] # it isn't a method, though
保持其余不变。
正如评论中还指出的那样,用 str
包装 input
在这里是多余的,input
已经返回了一个字符串。
关于python - 如果使用 getattr,如何从同一个文件调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41149734/