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

2022-09-05 00:49:43

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

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

答案 1

给定一个模块,方法为:foobar

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

getattr同样可以用于类实例绑定方法,模块级方法,类方法...这个清单还在继续。


答案 2
  • 使用 locals(),返回包含当前局部符号表的字典:

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

    globals()["myfunction"]()