如何在Python中实现由C ++调用的C ++类?

我有一个用C ++编写的类接口。我有一些类也使用C ++编写了实现此接口的类。这些在较大的C ++程序的上下文中调用,该程序实质上实现了“ main”。我希望能够用Python编写此接口的实现,并允许它们在较大的C ++程序的上下文中使用,就像它们只是用C ++编写一样。


关于python和C ++的接口已经写了很多,但是我不太清楚如何做自己想做的事情。我能找到的最接近的是这里:http : //www.cs.brown.edu/~jwicks/boost/libs/python/doc/tutorial/doc/html/python/exposed.html#python.class_virtual_functions,但这不是不太正确。


更具体地说,假设我已有一个定义如下的C ++接口:


// myif.h

class myif {

   public:

     virtual float myfunc(float a);

};

我想要做的是这样的:


// mycl.py

... some magic python stuff ...

class MyCl(myif):

  def myfunc(a):

    return a*2

然后,回到我的C ++代码中,我希望能够说出类似以下内容:


// mymain.cc

void main(...) {

  ... some magic c++ stuff ...

  myif c = MyCl();  // get the python class

  cout << c.myfunc(5) << endl;  // should print 10

}

我希望这足够清楚;)


偶然的你
浏览 566回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP