python c api。使用cpp(pythoncapi)调用具有多个输出的python函数

2021-10-17 17:45:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想调用一个Python函数,它有多个C++输出。 目前我可以调用一个python函数(从cpp)只输出1个值。如何修改代码以便能够在cpp端从python接收多个输出

python代码:

def add(a, b):
x = (a+b)
return x

cpp代码:

Py_Initialize();


PyObject *pName, *pModule, *pDict, *pFunc, *pArgs, *pValue;

pName = PyString_FromString("myFunc");

pModule = PyImport_Import(pName);

pDict = PyModule_GetDict(pModule);

pFunc = PyDict_GetItemString(pDict, "add");
pArgs = PyTuple_New(2);

pValue = PyFloat_FromDouble(11+i);

PyTuple_SetItem(pArgs, 0, pValue);

PyTuple_SetItem(pArgs, 1, pValue);


PyObject* pResult = PyObject_CallObject(pFunc, pArgs);


double result = PyFloat_AsDouble(pResult);
cout << "Value of variable i is: " << result <<endl;
}

我想修改python函数以返回2个输出,即:

import numpy as np 

def add(a, b):
x = (a+b)
return np.sqrt(x),x

我无法在cpp中打印python的2个输出。如何修改cpp代码以打印python的2个输出