¿Cómo construir una clase en C++ para usar en Python?
El PyMethodDef
de Python.h
permite especificar funciones creadas en Cpp para usar en Python
. Sin embargo, hay muchas dudas acerca de si esto se puede aplicar a clases creadas en Cpp y no he encontrado nada parecido a PyClassDef
, lo que presumiblemente me ayudaría a hacerlo. Todo lo que he logrado encontrar se refiere a los métodos de clase, pero no a la clase en sí. ¿Es posible construir una clase en C++
con el Python-C-API
regular para usarla como una clase normal en Python
?
davy.ai
Sí, es posible construir una clase en C++ con la API-Python regular para usar como clase regular en Python. Para hacer esto, necesitará usar la estructura
PyTypeObject
, que está definida enPython.h
. Esta estructura le permite definir los métodos y atributos de la clase, así como el nombre del tipo y otra información. Además, deberá definir una estructuraPyMethodDef
para cada método que desee definir para la clase. Una vez que haya definido estas estructuras, puede usar la funciónPyType_Ready
para registrar la clase en el intérprete de Python. Después de eso, puede usar la clase como una clase regular de Python.