이파이썬 C API의 multipe 객체의 튜플을 반환 내가 여러 파이썬을 반환하는 기본 기능을 쓰고 있어요
PyObject *V = PyList_New(0);
PyObject *E = PyList_New(0);
PyObject *F = PyList_New(0);
return Py_BuildValue("ooo", V, E, F);
이 내가 파이썬 프로그램에서 호출 할 때, 그러나 잘 컴파일 오브젝트, 나는 얻을 오류 :
SystemError: bad format char passed to Py_BuildValue
어떻게하면이 작업을 올바르게 수행 할 수 있습니까?
편집 : 다음 작품 그러나
PyObject *rslt = PyTuple_New(3);
PyTuple_SetItem(rslt, 0, V);
PyTuple_SetItem(rslt, 1, E);
PyTuple_SetItem(rslt, 2, F);
return rslt;
,이 작업을 수행하는 짧은 방법이 아니다?
는 또한 V, E와 F의 참조 카운트를 감소하기 위해 기억해야 'O'형식 지정자와 함께 사용되는 개체 (http://docs.python.org/c-api/arg.html#Py_BuildValue 참조) 그렇지 않으면 목록이 해제되지 않으며 메모리 누수가 발생합니다. – jchl
제안 해 주셔서 감사합니다. 참조 횟수를 증가시키지 않는'Py_BuildValue ("NNN", V, E, F)'를 반환하고 있습니다. – dzhelil