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