我想从C++设置一个Python变量,以便C++程序可以创建一个对象Game* game = new Game();,以便Python代码能够引用这个实例(和调用函数等).我怎样才能做到这一点?
我觉得我对Python或Boost-Python的工作方式有一些核心的误解.
该行在main_module.attr("game") = gametry catch语句中,并且错误(使用PyErr_Fetch)是"为C++类型找到No to_python(by-value)转换器:class Game".
例如
class_<Game>("Game")
.def("add", &Game::add)
;
object main_module = import("__main__");
Game* game = new Game();
main_module.attr("game") = game; //This does not work
Run Code Online (Sandbox Code Playgroud)
来自Python:
import testmodule
testmodule.game.foo(7)
Run Code Online (Sandbox Code Playgroud)