如何使用函数名称从字符串中调用 Python 模块的函数?


Python 中的对象具有实例变量和方法作为属性。若要使用函数名称从字符串中调用模块的函数,可以首先获得该属性,再调用附加到它的函数对象。例如,假设我有一个模块 foo,有一个内容为“bar”的字符串。调用 foo.bar() 最好的方法是

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

如果你在全局或局部命名空间中具有无需模块前缀的函数,则还可以使用 globals() / locals()。locals 返回一个包含当前局部符号表词典。globals 返回一个包含全局符号表词典。

例如

>>> result = locals()["myfunction"]()
or
>>> result = globals()["myfunction"]()

最后更新时间: 2019 年 12 月 11 日

895 次浏览

开始您的职业生涯

通过完成课程获得认证

开始
广告