Как реализовать привязки с PyBind11, которые возвращают объекты Python Protobuf из C ++? - PullRequest
0 голосов
/ 25 мая 2019

Я пишу pybindngs для класса C ++, в котором объекты Google Protobuf являются переменными-членами.Я хотел бы, чтобы эти binded-функции возвращали (на земле Python) версию Python объекта protobuf (который изначально генерирует протокомпилятор Google).

Если я попытаюсь наивно вернуть версию protobuf на C ++ вПри определении pybind

.def_readwrite("my_protobuf", &my_protobuf_)

я получаю следующую ошибку:

TypeError: Unable to convert function return value to a Python type! The signature was
        (self: MyClass) -> MyProtobufDef

, что имеет смысл - тип возвращаемого значения - объект protobuf в C ++, а не объект protobuf в Python.Как мне преобразовать это в Python-версию protobuf?

...