Я пытаюсь получить список в качестве аргумента в расширении C в Python, функции и обертке (таблица функции опущена):
#include <Python.h>
int MyFunction(int a_triplet[]){
printf("%i\n", a_triplet[0]);
return 0;
}
static PyObject* any_function(PyObject* self, PyObject* args)
{
PyObject *lst;
if (!PyArg_ParseTuple(args, "O", &lst))
return NULL;
return Py_BuildValue("[i]", MyFunction(lst)); // Returns error
}
Я немного растерялся впоследняя строка:
return Py_BuildValue("[i]", MyFunction(lst));
И в функции Python у меня есть это:
print (Module.any_function([67, 93, 56]))
Как я могу получить список, переданный в Python расширению C?Я заблудился, потому что, если я напишу функцию и оболочку для получения целого числа, она прекрасно работает:
#include <Python.h>
int MyFunction(int n){
printf("%i", n);
return 0;
}
static PyObject* alice_bob(PyObject* self, PyObject* args)
{
int n;
if (!PyArg_ParseTuple(args, "i", &n))
return NULL;
return Py_BuildValue("i", MyFunction(n));
}