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 関数/メソッドは 1 つの「もの」を返しますが、その「もの」は「コンテナー」である可能性があります。複数のリストを返す方法を尋ね続けます。やりたいことは、返したい「複数のリスト」を含むタプルまたはリストを返すことです。次に、呼び出しコードで、タプルまたはリストの要素にアクセスして、返したい「複数のリスト」を取得します。

于 2012-08-13T23:13:03.973 に答える
1

2 つのオブジェクトを受け取るのではなくPyTuple、関数によって実際に返される新しい参照を受け取ります。

于 2012-08-13T15:45:16.860 に答える