0
나는 C++ 객체를 가지고 있으며 임베디드 파이썬 인터프리터에 대한 참조/포인터로 전달하여 파이썬이 양쪽 모두에 대해 변경할 수 있도록한다. C++ 및 Python. 나는 Boost.Python을 interop 용으로 사용하고 있습니다.Boost.Python을 사용하여 참조/포인터로 파이썬 인터프리터에 전달하기
mymodule.h : 예의를 위해서
, 여기에 클래스Foo
, 그 Boost.Python 래퍼 및 C++에서
Foo
개체입니다
struct Foo
{
int bar;
Foo(int num): bar(num) {}
};
mymodule.cpp :
#include "mymodule.h"
#include <boost/python.hpp>
BOOST_PYTHON_MODULE(mymodule)
{
using namespace boost::python;
class_<Foo>("Foo", init<int>())
.def_readwrite("bar", &Foo::bar)
;
}
MAIN.CPP는 : C++과 파이썬 모두가 그 내용을 볼 수 있도록
#include <iostream>
#include <boost/python.hpp>
#include "mymodule.h"
using namespace boost::python;
int main()
{
Py_Initialize();
object main_module = import("__main__");
object main_namespace = main_module.attr("__dict__");
import("mymodule");
Foo foo(42);
// ... somehow use Boost.Python to send reference to interpreter ...
object result = exec_file("myscript.py", main_namespace);
std::cout << foo.bar << std::endl;
}
그래서 내가 어떻게 파이썬
foo
의 참조를 보내려면 어떻게합니까?
C++에서