On Mon, Apr 27, 2009 at 8:38 PM, Dan <danle...@gmail.com> wrote:

> Hello,
> I've recently started using Google Protocol Buffers with Python on my
> server.  I'm writing code to convert my data source into a binary
> payload, but I'm running into some snags and was wondering if there
> was a better way I'm not seeing in the documentation.
> Basically, I want a more dynamic Python accessor for the sake of code
> reusability.  There are two use cases:
> 1. Message[string] instead of Message.string
> Right now, I can only change fields by using Message.string (e.g.,
> Person.name).  However, I wish I could use Message[string] instead
> (e.g., Person['name']), so that I could apply one method to multiple
> fields.

You can use Python's standard getattr() and setattr() functions for this,
  name = getattr(message, 'name')
  setattr(message, 'name', new_value)

> 2. Message.Message2 = Message2 instead of having to set all internal
> attributes
> As far as I can tell, the standard way to set inner message's fields
> is to access it directory (e.g., Person.Address.city,
> Person.Address.zipcode, etc.).  I want to be able to write a method to
> generate an Address message, then simply add it to the message (e.g.,
> I've got an Address addr, and I use Person.Address = addr).



The full Message interface, including CopyFrom(), is documented here:


You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to