C ++调用Python,然后再调用C ++

时间:2014-06-23 18:41:19

标签: python c++ parameters callback

基本上,它应该看起来像这样(在伪代码中):

C ++文件:

void do_stuff(){
  printf("Callback", );
}

void main(){
  call_python_function(&do_stuff);
}

Python文件:

def python_function(ptr):
  ptr()

使用Python.h从C ++调用带有一些参数的Python相对容易,但是如何回调C ++呢? 另外,我还想传递一些数据,理想情况下,它最终应该看起来像这样:

C ++文件:

vector<double> do_stuff(double a, double b){
  vector<double> v;
  for(int i=0; i<1000; i++) v.push_back(a*sin(b*i));
}

void main(){
  call_python_function(&do_stuff);
}

Python文件:

def python_function(ptr):
  print ptr(1.2,3.4)

这有可能吗?我正在考虑使用像ZeroMQ这样的消息传递接口和一些线程,但也许有一个更清晰,更简单的解决方案看起来或多或少像我在这里展示的那样?

1 个答案:

答案 0 :(得分:0)

可能你可以尝试使用swig(http://www.swig.org/)来包装可以从python脚本调用的C ++函数。