Adding a field to a 'foreign' object from the outside

James Mills prologic at shortcircuit.net.au
Thu Jan 22 22:27:30 EST 2009


On Fri, Jan 23, 2009 at 1:19 PM, atleta <atleta.hu at gmail.com> wrote:
> I'm working with a callback API (a DBus one) and I'd need to store
> some state between the calls somewhere. I know that it's possible to
> extend an object with fields after creation, so I could just store my
> data in the session object that is passed in with every callback.
> However it stinks from OO perspective, at least to me. The other
> option, something that I'd do in java for example, would be to set up
> a mapping (a dict) using the session object as a key. Which one is the
> 'pythonic' way? Do you use the first method (modifying an object that
> you don't even control the source of) or do you write a bit more code
> and go with the second one?

The more elegant approach is your 2nd one.
A wrapper object that hold the extra data and functionality
you require while maintaining the APIs needs.

Tacking things on is a bit hackish :) (but nonetheless probably works).

--JamesMills



More information about the Python-list mailing list