【问题标题】:How do I call a function from the same file as I would if using getattr?如果使用 getattr,我如何从同一个文件中调用函数?
【发布时间】:2016-12-14 18:35:28
【问题描述】:

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

我所做的只会从不同的文件中调用,那么我该如何从同一个文件中以这种方式执行函数呢?

【问题讨论】:

  • 在python 3中你不需要调用strinput,因为它已经是一个字符串,而在python 2中你应该使用raw_input来代替

标签: python function python-3.x


【解决方案1】:

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

也就是说,将getattr替换为:

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

保持其余部分不变。

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

【讨论】:

    猜你喜欢
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多