我还不熟悉protobuf,但我会尝试提出一个问题。假设我有:
enum SourceType {
WEB = 1;
}
message Message {
optional SourceType source = 6;
}
我有一个消息实例Message,我希望像打印消息一样获取源的值。但是message.source会给我源代码。我想直接从对象中获取值,而不使用其他枚举/映射/常量来获取。在最后一行,我提供了一个可以达到预期值的示例,但我正在寻找一种更优雅的方法。
> message
<Message_pb2.Message object at 0x7f78561a83c8>
> print message
source: WEB
> print message.source
1
> message.DESCRIPTOR.fields_by_name['source'].enum_type.values_by_number[1].name
WEB