سؤال

أنا أكتب وظيفة أصلية من شأنها أن تعيد كائنات Python متعددة

PyObject *V = PyList_New(0);
PyObject *E = PyList_New(0);
PyObject *F = PyList_New(0);

return Py_BuildValue("ooo", V, E, F);

ومع ذلك ، فإن هذا يجمع بشكل جيد عندما أسميه من برنامج Python ، أحصل على خطأ:

Systemerror: تم تمرير تنسيق سيئ إلى Py_BuildValue

كيف يمكن القيام بذلك بشكل صحيح؟

تحرير: الأعمال التالية

PyObject *rslt = PyTuple_New(3);
PyTuple_SetItem(rslt, 0, V);
PyTuple_SetItem(rslt, 1, E);
PyTuple_SetItem(rslt, 2, F);
return rslt;

ومع ذلك ، أليس هناك طريقة أقصر للقيام بذلك؟

هل كانت مفيدة؟

المحلول

أعتقد أنه يريد الحالة العليا س؟ "OOO", ، ليس "ooo".

نصائح أخرى

يستخدم سيثون.

return V, E, F
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top