Decorator and Metaclasses Documentation

Bruno Desthuilliers bdesth.quelquechose at free.quelquepart.fr
Mon Aug 22 15:51:16 EDT 2005


Mike C. Fletcher a écrit :
> bruno modulix wrote:
> 
>> Mike C. Fletcher wrote:
>> (snip)
>>  
>>
>>> Though the don't go into extreme detail on decorators (they are
>>> basically syntactic sugar for a particular type of descriptor).
>>>
>>>   
>>
>> Err... Could you elaborate on this ? Decorators are syntactic sugar for
>> function wrapping, while descriptors are a 'protocol' to hook into
>> attribute lookup, so I don't really see how one can describe the first
>> in terms of the second...
>>  
>>
> There are two major types of descriptors, the elven and the dwarven.
> 
>    * Elven descriptors are things like property, BasicProperty, VRML97
>      fields, Zope Field Properties, or PEAK's mechanisms.  They mediate
>      access to an instance's attributes, (both setting and getting of
>      values) and are used primarily for domain modeling.
>    * Dwarven descriptors are things like staticmethod or classmethod;
>      function-like things that tend to look like a function and quack
>      like a function, but have some special property or functionality
>      attached when accessed as an attribute of a class/instance
>      (functions themselves return instance methods or class methods
>      depending on how they are retrieved).
> 

Ok, I see...

In fact, while reading your explanations, it reminded me of some 
experiments I made recently playing with descriptors, decorators and 
metaclasses to use callable objects implementing the descriptor protocol 
as instance methods of other objects (I don't know if I'll ever find a 
use case for this trick, but what, they're a lot of things in Python I 
never thought I could find a use case for at first and that I'd have 
hard time living without nowadays...).

> 
> HTH,

It did, thanks.




More information about the Python-list mailing list