我有这个非常简单的C ++类:
class Tree {
public:
Node *head;
};
BOOST_PYTHON_MODULE(myModule)
{
class_<Tree>("Tree")
.def_readwrite("head",&Tree::head)
;
}
我想从Python访问head变量,但我看到的消息是:
No to_python (by-value) converter found for C++ type: Node*
根据我的理解,这种情况发生是因为Python没有指针,因为它没有指针的概念。如何从Python访问head变量?
我知道我应该使用封装,但我目前仍然需要非封装解决方案。
答案 0 :(得分:20)
当然,在提出问题后十分钟我找到了答案......这是如何完成的:
class_<Tree>("Tree")
.add_property("head",
make_getter(&Tree::head, return_value_policy<reference_existing_object>()),
make_setter(&Tree::head, return_value_policy<reference_existing_object>()))
;