如果我有一个像'module.function'这样的字符串,我怎么能一步执行函数?
像somefunction('os.error','args')
答案 0 :(得分:1)
您可以使用sys.modules
动态获取模块,然后您可以使用getattr
从模块中获取属性,例如
import sys
func = "os.error"
module, function = func.split(".", 1)
getattr(sys.modules[module], function)()
sys.modules
只能提供已加载的模块。因此,如果要动态加载模块,可以使用__import__
这样的函数
例如,
module, function = "math.factorial".split(".", 1)
print getattr(__import__(module), function)(5)
<强>输出强>
120
答案 1 :(得分:0)
您需要做的就是
from module import function
您可以致电
function(x, y, z)
代码。