通过字符串调用模块的函数
我该如何用一个字符串来调用一个函数的名字呢?比如说:
import foo
func_name = "bar"
call(foo, func_name) # calls foo.bar()
18 个回答
478
根据Patrick的解决方案,如果你想动态地获取模块,可以使用以下方式来导入它:
module = __import__('foo')
func = getattr(module, 'bar')
func()
2922
假设有一个模块叫做 foo
,里面有一个方法叫 bar
:
import foo
bar = getattr(foo, 'bar')
result = bar()
getattr
这个函数也可以用在类的实例方法、模块级别的方法、类方法等等,能用的地方很多。