私は次のprotobuf定義を持っています:
syntax = "proto3";
message ACL {
enum Foo {
BAR = 0;
BAZ = 1;
}
enum Corpus {
UNIVERSAL = 0;
WEB = 1;
}
Foo foo = 1;
Corpus corpus = 2;
}
Pythonで使用すると、コーパスフィールドは保存/表示されますが、fooフィールドは保存/表示されません。
>>> import acl_pb2
>>> p = acl_pb2.ACL(foo="BAR", corpus="WEB")
>>> p
corpus: WEB
proto3では、ゼロはデフォルトであり、デフォルトはゼロです。デフォルト(ゼロ)は送信されません。したがって、実際のデータは送信されませんfoo = "Bar"
。これはゼロであるためです。しかし、あなたのモデルは、それが発見することができるはずfoo
存在しているの暗黙の値Bar
/を0
。そうでない場合、それはpythoncode-genの好奇心のように聞こえます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加