Python有没有函数指针?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (311)

我有一个函数名存储在如下变量中:

myvar = 'mypackage.mymodule.myfunction'

现在我想这样调用函数

myvar(parameter1, parameter2)

实现这一目标的最简单方法是什么?

提问于
用户回答回答于
funcdict = {
  'mypackage.mymodule.myfunction': mypackage.mymodule.myfunction,
    ....
}

funcdict[myvar](parameter1, parameter2)
用户回答回答于

使用存储函数:

import mypackage

myfunc = mypackage.mymodule.myfunction
myfunc(parameter1, parameter2)

但是,如果必须动态导入包,则可以通过以下方法实现:

mypackage = __import__('mypackage')
mymodule = getattr(mypackage, 'mymodule')
myfunction = getattr(mymodule, 'myfunction')

myfunction(parameter1, parameter2)

扫码关注云+社区

领取腾讯云代金券