descriptor object for an attribute?

Bruno Desthuilliers bdesth.quelquechose at
Wed Apr 11 16:07:19 EDT 2007

Eric Mahurin a écrit :
> Is there a standard way to get a descriptor object for an arbitrary
> object attribute - independent of whether it uses the descriptor/
> property protocol or not.  I want some kind of handle/reference/
> pointer to an attribute.  

I'm not sure to understand what you want exactly. A concrete example 
would probably help. But from what I understood, you could just use a 
thin wrapper like:

_marker = object()
class Accessor(object):
   def __init__(self, obj, name):
     self._obj = obj
     self._name = name
   def __call__(self, new_val=_marker):
     if new_val is _marker:
       return getattr(self._obj, self._name)
       setattr(self._obj, self._name, new_val)

class Foo(object):
   def __init__(self, bar, baak=42): = bar
     self.baak = baak

foo = Foo('allo')
bar = Accessor(foo, 'bar')

assert bar() == == 'allo'
assert bar() == == 42

If that doesn't answer your question, please pardon my stupidity and 
provide some more concrete example.

More information about the Python-list mailing list