【发布时间】:2017-02-10 03:06:50
【问题描述】:
假设我有一个这样的 Python 类:
class MyPythonClass:
def Func1(self, param):
return
def Func2(self, strParam):
return strParam
如果我想在我的 C++ 代码中嵌入包含该类的 Python 脚本,通过我的 C++ 代码创建该对象的实例,然后调用该 Python 对象上的成员,我该怎么做?
我想应该是这样的:
namespace python = boost::python;
python::object main = python::import("main");
python::object mainNamespace = main.attr("__dict__");
python::object script = python::exec_file(path_to_my_script, mainNamespace);
python::object foo = mainNamespace.attr("MyPythonClass")();
python::str func2return = foo.attr("Func2")("hola");
assert(func2return == "hola");
但是我尝试过的这段代码的许多变体都没有奏效。为了能够做到这一点,我需要将什么魔法酱倒在我的代码上?
【问题讨论】:
标签: c++ boost boost-python