https docs python org 3.7 tutorial
Crea un objeto usando la API C de Python (1)
Digamos que tengo mi diseño de objeto definido como:
typedef struct {
PyObject_HEAD
// Other stuff...
} pyfoo;
... y mi definición de tipo:
static PyTypeObject pyfoo_T = {
PyObject_HEAD_INIT(NULL)
// ...
pyfoo_new,
};
¿Cómo creo una nueva instancia de pyfoo
algún lugar dentro de mi extensión C?
Llame a PyObject_New() , seguido de PyObject_Init() .
EDITAR: La mejor manera es call al objeto de la clase, al igual que en 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);