python - 如果使用 getattr,如何从同一个文件调用函数?

标签 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()

虽然我所做的只会从不同的文件调用,但我如何从同一文件以这种方式执行函数?

最佳答案

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

也就是说,将 getattr 替换为:

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

保持其余不变。

正如评论中还指出的那样,用 str 包装 input 在这里是多余的,input 已经返回了一个字符串。

关于python - 如果使用 getattr,如何从同一个文件调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41149734/

相关文章:

r - R 中的函数、For 循环和条件

python-3.x - 如何解决Python中没有名为 'replacers'的模块问题?

python - 在迭代时将字符大写,就像 python 中的选取框

python - 使用条件检查对嵌套列表中的元素求和

python - 无法使用scrapy获取HTML表格中的行数

python - 将 Django 与遗留数据库集成不起作用

Python改变wav文件的音调

r - 在 R 函数中创建变量常量

javascript - 从 JavaScript 函数返回值

python - 在 Python 中使用 print 语句时如何删除字符串和参数之间的空格?