2010-06-07 16 views
9

Estoy tratando de usar la API de Python C para definir una nueva clase dentro de un módulo que expondría cierta funcionalidad escrita en código C a Python. Específicamente quiero tenerlo en forma de una clase y no un conjunto de funciones de módulo.¿Cómo se define un nuevo tipo (clase) en Python usando C API?

Sin embargo, no puedo encontrar nada sobre esta tarea en particular en la documentación oficial. Lo más parecido que pude encontrar es la función PyClass_New (en el encabezado Python.h), pero no se menciona en ningún lugar en los documentos oficiales, por lo que supongo que no se debe usar.

Entonces, ¿cuál es la forma correcta de definir una nueva clase de Python a partir del código C?

Gracias.

Respuesta

8

This part de los documentos que le proporcionen la mayor parte de la información que necesita. Las fuentes xxsubtype.c proporcionan un módulo de ejemplo que define una nueva clase (como una subclase de list, para mostrar precisamente cómo hacerlo, también) y xxmodule.c muestra (entre muchas otras cosas) también cómo definir un nuevo tipo.

-3
static PyObject* Request_new(PyTypeObject *type, PyObject *args, PyObject *kwds) 

puede ayudar a usted, entonces se puede declarar PyTypeObject variable para definir una nueva clase.

+0

¡Por favor explique su respuesta! – Mazz

Cuestiones relacionadas