如何处理返回多个列表的 Python 函数
Python脚本:
display():
a = [ 'a','b','abc']
b = [ 1 , 2 , 3]
return [a,b]
调用上述 python 函数的 c 函数片段:
pValue,pValue1 = PyObject_CallObject(pFunc, pArgs);
这是调用函数的正确方法吗?但是我不能使用这些对象来提取列表值。我究竟做错了什么 ?
如何处理返回多个列表的 Python 函数
Python脚本:
display():
a = [ 'a','b','abc']
b = [ 1 , 2 , 3]
return [a,b]
调用上述 python 函数的 c 函数片段:
pValue,pValue1 = PyObject_CallObject(pFunc, pArgs);
这是调用函数的正确方法吗?但是我不能使用这些对象来提取列表值。我究竟做错了什么 ?
PyObject *ret;
ret=PyObject_CallObject(pFunc,pArgs);
PyObject *ob1,*ob2;
PyArg_ParseTuple(ret,"oo",ob1,ob2); //o-> pyobject |i-> int|s-> char*
这就是你的做法。
所有 Python 函数/方法都返回一个“事物”,但该“事物”可以是“容器”。你一直在问如何返回多个列表;您要做的是返回一个元组或一个列表,其中包含您要返回的“多个列表”。然后,在调用代码中,您访问元组或列表的元素以获取您想要返回的“多个列表”。
您不会收到两个对象,您会收到一个PyTuple
实际上由您的函数返回的新引用。