如何通过函数名的字符串来调用这个函数?

假设我们有一个模块名字为 foo,其中有一个函数为 bar,但现在只给了字符串 "bar",如何通过字符串 "bar" 来调用对应的函数 foo.bar()

Solve

通过 getattr 方法:

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

可以简写为:

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

另外 getattr 可以用在实例绑定、模块级方法、类方法等

Last updated