Как установить поле ProtoBuf, которое является пустым сообщением в Python?

Ниже приведено содержимое файла протокола протоколов Google (.proto)

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?

One Solution collect form web for “Как установить поле ProtoBuf, которое является пустым сообщением в Python?”

Получил это в исходном коде класса 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() 
  • Используя Python, как мне получить двоичную сериализацию моего сообщения protobuf в Google?
  • Python - лучший язык программирования в мире.