[Python-ideas] Proposal for new-style decorators

Steven D'Aprano steve at pearwood.info
Tue Apr 26 18:26:39 CEST 2011


Christophe Schlick wrote:

> The goal of this post is to propose a new syntax for defining
> decorators in Python.

Too long, did read it. Here's the summary so others don't have to:

     "The current syntax for writing decorator functions is
     cumbersome, has too much boilerplate, and doesn't play
     well with introspection tools. I've got some great new
     syntax for writing decorators, but you'll have to wait
     to find out what it is."

You've obviously spent a lot of effort thinking this through, but this 
shouldn't be a mystery novel where you are trying to keep Who Done It 
secret until the end of the book. You talk a lot about new decorator 
syntax, but after reading > 150 lines, I still have no idea what it is, 
how much work it will require, and how disruptive it will be. That 
doesn't make me very enthusiastic about the idea.

Scientific papers and reports often have an executive summary at the 
very beginning: one or two paragraphs that summarize the report without 
all the details. Perhaps you should do the same?

As for the rationale given in this post, I'm not convinced there's 
actually a problem that needs solving. The "problems" you list seem 
pretty minor to me: e.g. so what if you have to name the inner function?

Admittedly, that the function signature is lost when using decorators 
*is* a pretty annoying gotcha, but surely we don't need new *syntax* to 
fix that. New *functionality* in functools.wraps perhaps?

Oh, one thought that comes to me... decorators are a special case of 
factory functions. Does your proposed syntax (whatever it is!) treat 
decorator functions as a special case, or does it apply to general 
factory functions as well?



-- 
Steven



More information about the Python-ideas mailing list