omo posso implementar uma classe C ++ em Python, a ser chamada por C +
Eu tenho uma interface de classe escrita em C ++. Eu tenho algumas classes que implementam essa interface também escrita em C ++. Eles são chamados no contexto de um programa C ++ maior, que implementa essencialmente "main". Quero poder escrever implementações dessa interface em Python e permitir que elas sejam usadas no contexto do programa C ++ maior, como se tivessem sido escritas apenas em C ++.
Há muita coisa escrita sobre a interface entre python e C ++, mas não consigo descobrir como fazer o que quero. O mais próximo que posso encontrar é aqui:http: //www.cs.brown.edu/~jwicks/boost/libs/python/doc/tutorial/doc/html/python/exposing.html#python.class_virtual_function, mas isso não está certo.
Para ser mais concreto, suponha que eu tenha uma interface C ++ existente definida algo como:
// myif.h
class myif {
public:
virtual float myfunc(float a);
};
O que eu quero poder fazer é algo como:
// mycl.py
... some magic python stuff ...
class MyCl(myif):
def myfunc(a):
return a*2
Então, de volta ao meu código C ++, quero poder dizer algo como:
// mymain.cc
void main(...) {
... some magic c++ stuff ...
myif c = MyCl(); // get the python class
cout << c.myfunc(5) << endl; // should print 10
}
Espero que isso seja suficientemente claro;)