如何在protobufs中访问python枚举

the*_*Man 6 python enums protocol-buffers

在我名为prok.proto的 protobuf文件中,我有:

message Cooking {
    enum VegeType {
        CAULIFLOWER = 0;
        CUCUMBER = 1;
    }
    required VegeType type = 1;
}
Run Code Online (Sandbox Code Playgroud)

在另一个文件(例如:name.py)中,我想将烹饪类型设置为黄瓜。即:

co = skill_pb2.Cooking()
co.type = skill_pb2.cooking.type.CUCUMBER
Run Code Online (Sandbox Code Playgroud)

这样最后一行就行了。如何将co.type设置为CUCUMBER?

注意:我想避免做co.type = 1

dol*_*lan 7

只是一个错字和一些大写字母。

skill_pb2.Cooking.CUCUMBER
Run Code Online (Sandbox Code Playgroud)

参见https://developers.google.com/protocol-buffers/docs/pythontutorial

  • 枚举的文档充其量是滑稽的:https://developers.google.com/protocol-buffers/docs/pythontutorial#enums (4认同)
  • 我认为方法已经更改,我必须这样做才能使其起作用:`skill_pb2.Cooking.VegeType.Value('CUCUMBER')` (3认同)