前言
使用python实现了一些模块和算法,需要使用C++进行调用,且还有可能需要传参数。 需要创建类对象 调用类方法等操作 参数构造
调试使用的python版本3.9
python端模块结构示意
#file M00.py in dir M00
class M:
def __init__(self):
pass
def __call__(self,arg):
pass
def hello(self,*k,**kw):
pass
if __name__=="__main__":
m = M()
ret=m()
ret2=m.hello()
CPP调用
解释器初始化 参考其他文章 这里解释器已经初始化OK 且没有问题
//Py_IsInitialized() is true
void afun(){
auto pM = PyImport_ImportModule("M00");
if (!pM) return errAndreturn("错误处理");
auto pC = PyObject_GetAttrString(pM, "M");//获得 from M00 import M
if (!pC) return errAndreturn("错误处理");
;
auto pInstance = PyObject_CallObject(pC,NULL);//相当于 m = M()
if (!pInstance) return errAndreturn("错误处理");