static PyObject *sum_cmd(PyObject *self, PyListObject *mass){
Py_ssize_t n=0;
n=PyList_Size((PyObject*)mass);
return Py_BuildValue("i",n);
}
>>> import mymod
>>> mymod.sum([1,2,3,4,5])
-1
1. как правильно заставить работать этот пример (возращать число элементов списка)
2. нет ли где учебника по C API, подробнее чем Extending and Embedding the Python Interpreter в плане списков?
3. PyListObject переконвертируется в PyObject, а то непонятно как действова, я жду в параметрах список, а могу работать с базовым объектом согласно синтаксису Py_ssize_t PyList_Size(PyObject *list)?
P.S. Если говорить конкретнее, то мне нужно работать с массивами numpy.ndarray размерности 1,2,3 , и если есть рекомендации как эффективнее работать с ними в C API прошу высказаться.