¿Cómo puedo usar la clase C ++ en Python?

He implementado una clase en C ++. Quiero usarlo con Python. Por favor sugiera el método paso a paso y elabore cada paso. Algo como esto …

class Test{ private: int n; public: Test(int k){ n=k; } void setInt(int k){ n = k; } int getInt(){ return n; } }; 

Ahora, en Python

 >>> T1 = Test(12) >>> T1.getInt() 12 >>> T1.setInt(32) >>> T1.getInt() 32 

Por favor sugerir. ¿Cómo puedo hacer esto? NOTA: Me gustaría saber la forma manual de hacerlo. No quiero ninguna dependencia de biblioteca de terceros.

Mira en Boost.Python . Es una biblioteca para escribir módulos de python con C ++.

También busque en SWIG que también puede manejar módulos para otros lenguajes de scripting. Lo he usado en el pasado para escribir módulos para mi clase y usarlos dentro de python. Funciona genial.

Puede hacerlo manualmente utilizando la API de Python / C , escribiendo la interfaz usted mismo. Es bastante bajo, pero obtendrás mucho conocimiento adicional de cómo funciona Python detrás de la escena (y lo necesitarás cuando uses SWIG de todos modos).

ctypes es bueno. Es realmente fácil de usar, y viene de serie con Python. Desafortunadamente, solo puede comunicarse con bibliotecas compartidas (Unix) o DLL (Windows) que tienen una interfaz de estilo C, lo que significa que no puede interactuar directamente con un objeto C ++. Pero podría usar un sistema de control donde un control se refiere a un objeto en particular.

 >>> getInt(h) 12 

Creo que es simple, fácil de entender y no requiere bibliotecas adicionales.

Le sugiero que pruebe SWIG o sip (KDE / PyQt).

Enlace SWIG: http://www.swig.org/
Enlace SIP: http://freshmeat.net/projects/python-sip/

Se pueden usar para envolver clases de C ++ y proporcionarles una interfaz Pythonic.