Как установить поле ProtoBuf, которое является пустым сообщением в Python?
ниже приведены содержимое буфера протокола Google (.proto) file
message First
{
required uint32 field1 = 1;
optional MessageType1 request = 2;
}
message MessageType1
{
}
Я хочу установить запрос поля MessageType1. Но я получаю это как ошибку:
AttributeError: Assignment not allowed to composite field "request" in protocol message object.
Как установить значение этого пустого сообщения в Python?
1 ответов
получил это в исходном коде класса Message в Proto Buffer.
def SetInParent(self):
"""Mark this as present in the parent.
This normally happens automatically when you assign a field of a
sub-message, but sometimes you want to make the sub-message
present while keeping it empty. If you find yourself using this,
you may want to reconsider your design."""
таким образом, способ установить такое пустое сообщение-вызвать эту функцию:
first.request.SetInParent()