tutorial org docs python c python-c-api python-extensions python-embedding

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);