从 Python 中存储的字符串调用函数

新手上路,请多包涵

我需要的是获取变量的东西,如果变量是函数的名称,则将调用该函数。我不是想从模块中获取函数,而是从程序本身获取函数

例子:

 def foo():
    print("Foo")
callfunction = input("What function do you want to call? ")

callfunction() ## Not sure what to put here but but lets say callfunction is foo.

我不想要这样的东西,因为我有很多功能:

 if callfunction == "Foo"
    Foo()
else:
    print("No function with that name")

我的问题是 这样 的,但我要求的是 Python 语法。我正在使用 Python 3.5.1

原文由 Fonky44 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 642
2 个回答

你可以这样做 :

 eval(input("What function do you want to call? ") + '()')

原文由 Jarvis 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用字典将名称映射到函数。

 call_dict = {
    'foo': foo,
    'bar': bar
}
call_dict[callfunction]()

原文由 Daniel Roseman 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题