[Python-Dev] Re: Decorator order implemented backwards?
James Y Knight
foom at fuhm.net
Mon Aug 16 06:38:06 CEST 2004
On Aug 15, 2004, at 11:45 PM, Jack Diederich wrote:
> My patch to add support for class decorators defines func before the
> decorators as a side effect of moving Mark's decorator code out of
> com_funcdef (and yes, that was a plug).
That's definitely worse. It causes a possibly incorrect temporary value
to be bound, even if only for a short amount of time. The current
behavior of only doing the store after executing the decorators is
cleaner.
I'd rewrite the translation as:
"""
The following code:
@f1(arg)
@f2
def func(): return True
is nearly* equivalent to:
func = f1(arg)(f2(lambda : True))
* However, you don't have the syntactical restrictions of a lambda, and
the function name gets set to "func" instead of "<lambda>".
"""
James
More information about the Python-Dev
mailing list