この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