我正在寻找一种简单的方法将C++类实例暴露给python嵌入式解释器.
我想将我的C++世界Foo实例暴露给python世界(并被视为Foo类).
这是可能的,如果是这样,怎么样?
我认为这几乎就像在第一个答案中: boost :: python :: ptr或PyInstance_New用法
我想这意味着我应该boost.Python用来包装我的图书馆?
我唯一的目标是在嵌入式python解释器中操作我的Coo Coo实例(不确定它是否可以使用前面的方法完成).
希望我很清楚,谢谢你的帮助.
更新
谢谢你的回答.事实上,我已经将我的Foo类暴露给python(使用swig).
是)我有的:
我的Foo课程:
class Foo{...};
Run Code Online (Sandbox Code Playgroud)
我的包装库(包括Foo类)暴露给python:所以我可以启动python解释器并执行以下操作:
import my_module
foo=my_modulde.Foo()
Run Code Online (Sandbox Code Playgroud)
我想要的是:
有一个C++主程序嵌入python解释器并操纵C++世界变量.
int main(int argc, char **argv)
{
Foo foo; // instanciates foo
Py_Initialize();
Py_Main(argc, argv); // starts the python interpreter
// and manipulates THE foo instance in it
Py_Finalize();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在更清楚了吗?:)