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

questionAnswers(12)

yourAnswerToTheQuestion