我试图从C++代码中调用Python方法,而我调用的方法将文件名作为参数返回列表。在
我的示例代码当前将方法调用的PyObject*结果转换为double,但我希望将其转换为list。在
#include "include.h"
int main(int argc, char* argv[])
{
double answer = 0;
PyObject *modname, *mod, *mdict, *func, *stringarg, *args, *result;
Py_Initialize();
PyRun_SimpleString("import sys");
modname = PyUnicode_FromString("module");
mod = PyImport_Import(modname);
if (!mod)
{
PyErr_Print();
exit(1);
}
mdict = PyModule_GetDict(mod);
func = PyDict_GetItemString(mdict, "func");
if (!func)
{
printf("function does not exist\n");
}
stringarg = PyUnicode_FromString("test.txt");
args = PyTuple_New(1);
PyTuple_SetItem(args, 0, stringarg);
result = PyObject_CallObject(func, args);
if (result)
{
answer = PyFloat_AsDouble(result);
Py_XDECREF(result);
}
Py_XDECREF(stringarg);
Py_XDECREF(args);
Py_XDECREF(mod);
Py_XDECREF(modname);
Py_Finalize();
return 0;
}
我该怎么做呢?我见过一些包装类的示例,它们创建作为参数传递的列表对象,但没有看到将返回值转换为列表的示例。在
您正在查找API的List Objects部分:
相关问题 更多 >
编程相关推荐