0
我想從C++代碼調用Python方法,並且我調用的方法將文件名作爲參數返回列表。從C++調用的python方法返回列表
我的示例代碼當前將方法調用的PyObject *結果轉換爲double,但我想將其轉換爲列表。
#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;
}
我該如何去做這件事?我見過包裝類的例子來創建作爲參數傳遞的列表對象,但我還沒有看到將返回的值轉換爲列表的示例。
你是什麼意思轉換到一個列表?現在看起來你假設它返回一個'浮動'。你只想得到一個浮點的列表? – Barry
正如我所說的「我的示例代碼當前將PyObject *結果轉換爲雙精度,但我想將其轉換爲列表」。 – Paul
當我要求澄清你的問題時,我的意思並不是要你直接引用我要求澄清的部分。將double轉換爲list對你來說意味着什麼? – Barry