我使用proto3并在某个.proto
文件中定义了一条消息:
message Response {
google.protobuf.BoolValue field = 1;
...
}
为了在Python中初始化Response
,我需要创建一个布尔基元包装器并附加一些值。
如果我要将此值初始化为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]:
如何创建BoolValue
初始化为false?
答案 0 :(得分:3)
从字段列表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