在我的protobuf文件 skill.proto 中,我具有:

message Cooking {
    enum VegeType {
        CAULIFLOWER = 0;
        CUCUMBER = 1;
    }
    required VegeType type = 1;
}

在另一个文件(例如:name.py)中,我想将 cooking 类型设置为 cucumber 。 IE:
co = skill_pb2.Cooking()
co.type = skill_pb2.cooking.type.CUCUMBER

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

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

最佳答案

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

skill_pb2.Cooking.CUCUMBER

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

更新:protobuf中的accessing enums现在有三种可能的方法:
skill_pb2.Cooking.CUCUMBER
skill_pb2.Cooking.VegeType.CUCUMBER
skill_pb2.Cooking.VegeTypeValue.Value('CUCUMBER')

第二个是较新的,如this issue中所述。

09-26 00:59