我有一个班级
class A {
A(SomeClass* ptr);
do_something();
};
我想在使用boost-python
的嵌入式python解释器中使用它到目前为止,我已经设法通过BOOST_PYTHON_MODULE
创建了一个python模块,并使用一个接受SomeClass指针的构造函数创建了一个class_<A>
。
现在我想扩展解释器,以便在调用某些python代码时有一个这个类的实例(名为an_a
),以便以下python代码有效:
#preferably no imports here.
an_a.do_something()
我的问题有两个,我需要在使用解释器之前在python或C ++中构造这个对象,并且我需要使该对象可用于脚本的编写者。我在找到的文档中找到了如何做到这一点时遇到了一些问题。
答案 0 :(得分:0)
我最近需要做这件事。我也考虑过(和使用过)Boost.Python,但我个人(尽管我喜欢Boost)我觉得不得不拖入一半的Boost库来获得这个功能。
因此,如果您感兴趣,我最近在Python包装器库中使用名为ECS:Python的第一原理实现了C ++的嵌入式Python脚本。 ECS:Python(嵌入式C ++脚本与Python)专为希望将C ++应用程序中的对象暴露给嵌入式Python解释器以进行交互式脚本编写的C ++开发人员而设计。
它的免费(BSD)和开源: http://sourceforge.net/projects/ecspython