[Python-ideas] The Descriptor Protocol...
Martin Chilvers
martin.chilvers at gmail.com
Thu Mar 3 12:52:38 CET 2011
Hi Raymond,
Thanks for your replies. We currently use the traditional
__getattribute__ hook, and the original question came up as part of a
debate about the various merits of descriptors vs __getattribute__.
Martin
On 02/03/2011 19:35, Raymond Hettinger wrote:
> P.S. Python is very customizable. The descriptor protocol in
> implemented by __getattribute__, so it's not a hard exercise to write
> your own __getattribute__ to implement your own variant of the
> descriptor protocol. Here's a quick and dirty example:
>> class Str: 'Descriptor using a custom protocol' def __my_get__(self,
> obj, key): print(key * 5) return obj
>> class A:
>> @property # old protocol def x(self): return 10
>> y = Str() # new protocol
>> def __getattribute__(self, key): 'Implement an alternative descriptor
> protocol' attr = object.__getattribute__(self, key) if hasattr(attr,
> '__my_get__'): return attr.__my_get__(attr, key) return attr
>> a = A() print(a.x) print(a.y)
>>
More information about the Python-ideas
mailing list