为了账号安全,请及时绑定邮箱和手机立即绑定

Python函数指针

Python函数指针

万千封印 2019-12-26 09:17:31
我将函数名称存储在这样的变量中:myvar = 'mypackage.mymodule.myfunction'我现在想这样调用myfunctionmyvar(parameter1, parameter2)最简单的方法是什么?
查看完整描述

3 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

funcdict = {

  'mypackage.mymodule.myfunction': mypackage.mymodule.myfunction,

    ....

}


funcdict[myvar](parameter1, parameter2)


查看完整回答
反对 回复 2019-12-26
?
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)

但是请记住,所有这些工作都适用于您当前所在的任何范围。如果您不以某种方式坚持使用它们,那么如果您离开本地范围,就不能指望它们会继续存在。


查看完整回答
反对 回复 2019-12-26
  • 3 回答
  • 0 关注
  • 523 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信