>>> class InfoDescriptor(object):
... def _new_info(self, msg):
... return "intercepted! '%s'" % msg
... def __get__(self, logger, logger_class):
... return self._new_info
...
>>> class Logger(object):
... info = InfoDescriptor()
...
>>> log = Logger()
>>> log.info('something happened')
"intercepted! 'something happened'"
>>>
As you can see, log.info() returns __get__() instead of log.info itself.
There is a bit more info here:
http://users.rcn.com/python/download/Descriptor.htm ... but I'm still
not sure of a real world, practical example for using descriptors.
Maybe someone else can post a more realistic example.
-Kumar
--
Daryl