0

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

1 に答える 1