[portland] class decorators useful?

Adam Lowry adam at therobots.org
Fri Apr 17 02:28:53 CEST 2009


On Apr 15, 2009, at 5:25 PM, kirby urner wrote:
> I'm thinking of Adam's comment that he never decorated a class and
> didn't regret it, and, truth be told, I've not experimented with that
> feature much.
>
> So I wanted to give a use case, see if PPUGers think it flies.

At the Side Door after the meeting, John Melesky reminded me that  
decorators are often used in places where metaclasses are used, and  
ORMs are a case where metaclasses can be used well; a class you  
defined is instrumented as a bridge to a DB subsystem.

> Here's an excellent talk on class decorators, also talked to this guy
> (Jack Diederick) at the CPP / Iceland party (lots of Twisted guys):
>
> http://pycon.blip.tv/file/1957258/

This was the talk that I saw that prompted my outburst. Jack  
identified four ways decorators are used: registration, verification,  
augmentation, and fixups. This vector example would be a case of  
augmentation.

Registration was the only case I could think of that worked well in my  
mind. In the past I've got the augmentation route and felt that it  
made the code less readable and less understandable; I should have  
composed a helper object. In this example that method or a straight  
subclass (or even mixin) would be easier to read in my opinion.

But for pure library code like an ORM, where the user is not intended  
to need to dive into the guts, they can be useful.

Perhaps we can find some code in the wild that make good use of them?

Adam


More information about the Portland mailing list