我有一个不断生成数据的C ++程序。我有一个处理这些数据的python类。我想使用这个python类来处理数据:每次生成数据点时,我都可以使用这个python脚本来处理数据。但是这个python脚本必须是“有状态的”,即它应该能够记住它在此数据点之前所做的事情。
一个超级基本的例子是,我的C ++程序只生成数字,而我的python类计算生成的数字的累积总和:
的Python:
class CumSum:
def addone(x):
self._cumsum += x;
print self._cumsum;
C ++
[Somehow construct a CumSum instance, say c]
for (int i=0; i<100000; i++) {
int x = rand() % 1000;
[Call c.addone(x)]
}
我听说boost :: python是处理这个的好方法。任何人都可以勾画出如何做到这一点吗?我试图阅读提升文件,但它们对我来说太大了,无法消化。
感谢您的帮助。
答案 0 :(得分:0)
有关如何执行python脚本的基本信息:
http://www.boost.org/doc/libs/1_47_0/libs/python/doc/tutorial/doc/html/python/embedding.html
有关在C ++中操作python对象的详细信息
http://www.boost.org/doc/libs/1_47_0/libs/python/doc/tutorial/doc/html/python/object.html
很多boost-python都关注将你的C ++类导出到python,但是你没有这样做,所以你可以忽略它。
使用像SCXX
这样的简单包装器可能会更好