[Python-Dev] PEP 318: Can't we all just get along?
Phillip J. Eby
pje at telecommunity.com
Thu Aug 19 06:43:40 CEST 2004
At 09:01 PM 8/18/04 -0700, Guido van Rossum wrote:
>Is anybody seriously trying to come up with a single alternative
>decorator proposal that most folks "out there" can support, to be
>presented to me (with implementation, please!) in time for 2.4b1?
I've been trying to drum up support here for option J4, a compromise
between list-after-def and @decorators:
def p_statement_expr(p)
@staticmethod
@grammarrule('statement : expression')
@version("Added in 2.4")
@returns(None)
as:
"""Docstring could be here, or in the decorator part above"""
# body goes here
I think it combines the best of several proposals; @definitions are more
visible than list-after-def, but are not part of the function body, and you
get to see the signature first. It doesn't define a new keyword, "as" is
an unambiguous pseudo-keyword here, because decorators start with "@".
The principal downside is the presence of indentation without either a : or
enclosing brackets. The syntax I proposed was something like:
funcdef: "def" NAME arglist [decorators] ":" suite
decorators: INDENT ("@" decorator_spec NEWLINE)* [docstring NEWLINE]
DEDENT "as"
There's been no response that I've noticed, perhaps because by the time I
proposed it people were already sick of looking at options A through
J3. :) Or maybe it just sucks for some reason invisible to me.
More information about the Python-Dev
mailing list