Представление указателя в Повышении. Python

У меня есть этот очень простой класс C++:

class Tree {
    public:
        Node *head;
};
BOOST_PYTHON_MODULE(myModule)
{

   class_<Tree>("Tree")
        .def_readwrite("head",&Tree::head)
    ;

}

Я хочу получить доступ к главной переменной из Python, но сообщение, которое я вижу:

No to_python (by-value) converter found for C++ type: Node*

Из того, что я понимаю, это происходит, потому что Python чертовски отсутствует, потому что он не имеет никакого понятия указателей. Как я могу получить доступ к главной переменной из Python?

Я понимаю, что должен использовать инкапсуляцию, но я в настоящее время застреваю с необходимостью в решении неинкапсуляции.

11
задан ataylor 29 March 2010 в 22:07
поделиться

1 ответ

Конечно, я нахожу ответ через десять минут после того, как задаю вопрос ... вот как это делается:

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>()))
;
19
ответ дан 3 December 2019 в 06:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: