【发布时间】:2011-11-04 01:19:37
【问题描述】:
我有一个不断生成数据的 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 是处理这个问题的好方法。任何人都可以勾勒出如何做到这一点吗?我试图阅读 boost 文档,但它们太大了,我无法消化。
感谢您的帮助。
【问题讨论】:
-
Boost.Python 确实可以帮助您:您可以导入 Python 模块(
.py文件),创建一个实例并将其保存在 C++ 变量中,然后在需要时从 C++ 调用方法到。从教程开始:boost.org/doc/libs/1_47_0/libs/python/doc/tutorial/doc/html/…
标签: c++ python boost boost-python