Создайте объект с помощью API Python C
-
08-10-2019 - |
Вопрос
Скажем, у меня есть мой объект, определяется как:
typedef struct {
PyObject_HEAD
// Other stuff...
} pyfoo;
... и определение моего типа:
static PyTypeObject pyfoo_T = {
PyObject_HEAD_INIT(NULL)
// ...
pyfoo_new,
};
Как создать новый экземпляр pyfoo
Где-то в моем расширении C?
Решение
Вызов Pyobject_new (), с последующим Pyobject_init ().
РЕДАКТИРОВАТЬ: Лучший способ - это вызов Объект класса, как в самом Python:
/* Pass two arguments, a string and an int. */
PyObject *argList = Py_BuildValue("si", "hello", 42);
/* Call the class object. */
PyObject *obj = PyObject_CallObject((PyObject *) &pyfoo_T, argList);
/* Release the argument list. */
Py_DECREF(argList);
Не связан с StackOverflow