我将函数名称存储在这样的变量中:myvar = 'mypackage.mymodule.myfunction'我现在想这样调用myfunctionmyvar(parameter1, parameter2)最简单的方法是什么?
3 回答

FFIVE
TA贡献1797条经验 获得超6个赞
funcdict = {
'mypackage.mymodule.myfunction': mypackage.mymodule.myfunction,
....
}
funcdict[myvar](parameter1, parameter2)

POPMUISE
TA贡献1765条经验 获得超5个赞
能够只存储函数本身会更好,因为它们是python中的一流对象。
import mypackage
myfunc = mypackage.mymodule.myfunction
myfunc(parameter1, parameter2)
但是,如果必须动态导入软件包,则可以通过以下方法实现:
mypackage = __import__('mypackage')
mymodule = getattr(mypackage, 'mymodule')
myfunction = getattr(mymodule, 'myfunction')
myfunction(parameter1, parameter2)
但是请记住,所有这些工作都适用于您当前所在的任何范围。如果您不以某种方式坚持使用它们,那么如果您离开本地范围,就不能指望它们会继续存在。
添加回答
举报
0/150
提交
取消