Adding a field to a 'foreign' object from the outside
prologic at shortcircuit.net.au
Fri Jan 23 04:27:30 CET 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).
More information about the Python-list