Предположим, у меня есть класс Python, как так:Как создать и использовать экземпляр объекта Python с повышением :: питона
class MyPythonClass:
def Func1(self, param):
return
def Func2(self, strParam):
return strParam
Если я хочу, чтобы вставить скрипт на Python, который содержит этот класс в моей C++ кода , создайте экземпляр этого объекта через мой код на 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");
Но многие вариации этого кода я попытался не работал. Какой волшебный соус мне нужно налить на мой код, чтобы это сделать?