2016-10-03 2 views
0

У меня есть сообщение Google Protobuf:Тестирование существования повторяющихся полей в сообщении protobuff

message Foo { 
    required int bar = 1; 
} 

Я знаю, что для того, чтобы проверить поля сообщения, можно использовать:

foo.bar = 1 
assert foo.HasField("bar") 

Однако «HasField» не работает для повторяющихся типов полей. Как проверить наличие поля для «повторного типа» полей?

message Foo { 
    repeated int bar = 1; 
} 

ответ

1

Вы могли бы попытаться проверить длину повторяющейся области:

assert len(foo.bar) == 0 
+0

, но это только дайте мне знать, что поле добавляется, но не то, что поле это. – Ysh

+0

Да, вам нужно знать, какое поле у ​​вас в вашем прото. Gje –

+0

Метод hasfield в основном там, чтобы проверить, было ли поле задано с некоторым значением –

Смежные вопросы