使用名称(字符串)调用模块的函数

新手上路,请多包涵

如何使用带有函数名称的字符串调用函数?例如:

 import foo
func_name = "bar"
call(foo, func_name)  # calls foo.bar()

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

阅读 218
2 个回答

给定一个模块 foo 方法 bar

 import foo
bar = getattr(foo, 'bar')
result = bar()

getattr 可以类似地用于类实例绑定方法、模块级方法、类方法……等等。

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

  • 使用 locals() ,返回带有当前本地符号表的字典:
   locals()["myfunction"]()

  • 使用 globals() ,返回带有全局符号表的字典:
   globals()["myfunction"]()

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

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