3

如何处理返回多个列表的 Python 函数

Python脚本:

display():
    a = [ 'a','b','abc']
    b = [ 1 , 2 , 3]
    return [a,b]

调用上述 python 函数的 c 函数片段:

pValue,pValue1 = PyObject_CallObject(pFunc, pArgs);

这是调用函数的正确方法吗?但是我不能使用这些对象来提取列表值。我究竟做错了什么 ?

4

3 回答 3

3
PyObject *ret;
ret=PyObject_CallObject(pFunc,pArgs);
PyObject *ob1,*ob2;

PyArg_ParseTuple(ret,"oo",ob1,ob2); //o-> pyobject |i-> int|s-> char*

这就是你的做法。

于 2012-08-13T15:47:04.827 回答
2

所有 Python 函数/方法都返回一个“事物”,但该“事物”可以是“容器”。你一直在问如何返回多个列表;您要做的是返回一个元组或一个列表,其中包含您要返回的“多个列表”。然后,在调用代码中,您访问元组或列表的元素以获取您想要返回的“多个列表”。

于 2012-08-13T23:13:03.973 回答
1

您不会收到两个对象,您会收到一个PyTuple实际上由您的函数返回的新引用。

于 2012-08-13T15:45:16.860 回答