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

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"]()