Pregunta

He implementado una clase en C ++. Quiero usarlo con Python. 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

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

¿Fue útil?

Solución

Busque 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 muy bien.

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

Otros consejos

ctypes es bueno. Es realmente fácil de usar y viene estándar 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 refiera a un objeto en particular.

>>> getInt(h)
12

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

Te sugiero que pruebes SWIG o sip (KDE / PyQt).

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top