我正在使用 proto3,并且在某些 .proto
文件中有一条消息定义为:
message Response {
google.protobuf.BoolValue field = 1;
...
}
为了在 Python 中初始化 Response
,我需要创建一个 bool 原始包装器并附加一些值。
如果我将此值初始化为 True
,这很好。来自 Python 笔记本:
In [52]: from google.protobuf import wrappers_pb2 as wrappers
boo = wrappers.BoolValue(value=True)
boo
Out [52]: value: true
如果我将此值初始化为 False
,则不会创建包装对象:
In [52]: from google.protobuf import wrappers_pb2 as wrappers
boo = wrappers.BoolValue(value=False)
boo
Out [52]:
如何创建一个初始化为 false 的 BoolValue
?
最佳答案
非真实值从字段列表中删除 as implemented here .
>> boo = wrappers.BoolValue(value=True)
>> boo.ListFields()
[(<google.protobuf.descriptor.FieldDescriptor object at 0x10a037bd0>, True)]
>> boo = wrappers.BoolValue(value=False)
>> boo.ListFields()
[]
为了访问消息值,您可以这样写:
>> boo = wrappers.BoolValue(value=True)
>> boo.value
True
>> boo = wrappers.BoolValue(value=False)
>> boo.value
False
关于python - Python 中用于 Protobuf 的原始包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44836174/