让我们看看这个 proto3 代码:
message Animal{
oneof animal_oneof {
CAT cat = 1;
DOG dog = 2;
}
}
message CAT{
int32 meow = 1;
int32 meow_2 = 2;
}
message DOG{
int32 woof = 1;
int32 woof_2 = 2;
int32 woof_3= 3;
int32 woof_4= 4;
}
我想从CAT
或访问字段DOG
。
我可以将oneof
值选择为:
selected_animal = request.Animal.WhichOneof("animal_oneof ")
但是我怎样才能动态访问每个字段呢?我必须getWoof()
为每个领域打电话吗?
我可以访问每个字段名称,例如:
for descriptor in request.Animal.DOG.DESCRIPTOR.fields_by_name