Python中的反射机制-给出函数名字符串如何调用函数?

Code提问:

例如,假设我有一个模块foo,并且我有一个内容为"bar"的字符串。那么调用foo.bar()的最佳方式是什么?
我需要获取函数的返回值,这就是为什么我不使用eval

这里要注意,这个函数名是动态的,所以写代码的时候,我们不知道需要调用什么,类似于其它语言里面的反射。

Code回答:

假设使用方法bar的模块foo

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

实际上这里,第2行和第3行可以压缩为:

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

By Code问答

发表评论

电子邮件地址不会被公开。 必填项已用*标注

19 − 14 =