gpt4 book ai didi

python - 将数组从 python 返回到 C++

转载 作者:行者123 更新时间:2023-11-30 01:48:03 25 4
gpt4 key购买 nike

我正在编写一个 c++ 代码来调用 python 函数,python 函数返回的数组将存储在 c++ 中的一个数组中。我可以在 C++ 中调用 Python 函数,但我只能从 Python 向 C++ 返回一个值,而我想要返回的是一个数组。下面是我的 C++ 代码:

int main(int argc, char *argv[])
{
int i;
PyObject *pName, *pModule, *pDict, *pFunc, *pArgs, *pValue;

if (argc < 3)
{
printf("Usage: exe_name python_source function_name\n");
return 1;
}

// Initialize the Python Interpreter
Py_Initialize();

// Build the name object
pName = PyString_FromString(argv[1]);

// Load the module object
pModule = PyImport_Import(pName);

// pDict is a borrowed reference
pDict = PyModule_GetDict(pModule);

// pFunc is also a borrowed reference
pFunc = PyDict_GetItemString(pDict, argv[2]);

pValue = PyObject_CallObject(pFunc, NULL);
if (pValue != NULL)
{
printf("Return of call : %d\n", PyInt_AsLong(pValue));
PyErr_Print();
Py_DECREF(pValue);
}
else
{
PyErr_Print();
}

这里,pValue应该取的值是一个数组,但是当它只取一个元素时能够成功执行。

我无法理解如何将数组从 python 传递到 C++。

最佳答案

Python 列表 是 1 个对象。您能否从 python 返回一个列表并使用 PyList_Check 检查您是否在 C++ 中获得了它?然后使用 PyList_Size 查看它有多长,并使用 PyList_GetItem 取出项目。

关于python - 将数组从 python 返回到 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30720121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com