我想制作一个能够包含多种不同事件类型的protobuf Event
消息。下面是一个例子:
message Event {
required int32 event_id = 1;
oneof EventType {
FooEvent foo_event = 2;
BarEvent bar_event = 3;
BazEvent baz_event = 4;
}
}
这很正常,但有一件事情让我很困扰,那就是
EventType
是可选的:我可以只编码一个带有event_id
的对象,protobuf不会报错。>>> e = test_pb2.Event()
>>> e.IsInitialized()
False
>>> e.event_id = 1234
>>> e.IsInitialized()
True
有没有办法要求设置EventType
?如果使用Python,是否会有影响?