إرجاع مجموعة من الكائنات المتعددة في Python C API
-
29-09-2019 - |
سؤال
أنا أكتب وظيفة أصلية من شأنها أن تعيد كائنات 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
لا تنتمي إلى StackOverflow