我正在为将Google Protobuf对象作为成员变量的C ++类编写pybindngs。我希望这些绑定函数返回(在Python领域中)protobuf对象的Python版本(由Google的proto编译器本地生成)。
如果我尝试在pybind定义中天真地返回protobuf的C ++版本
.def_readwrite("my_protobuf", &my_protobuf_)
,出现以下错误:
TypeError: Unable to convert function return value to a Python type! The signature was
(self: MyClass) -> MyProtobufDef
这很有意义-返回类型是C ++ protobuf对象,而不是Python protobuf对象。如何将其转换为protobuf的Python版本?