[Python-Dev] Dropping decorator syntax for 2.4?
jhylton at gmail.com
Fri Jun 4 08:38:21 EDT 2004
On Fri, 04 Jun 2004 11:59:46 +0200, Thomas Heller <theller at python.net> wrote:
> Couldn't Guido's syntax be implemented as a combination of an import
> hook together with a byte code hack, without direct support in the core?
> Code like this
> [decorator1, decorator2]
> def func(args):
How about this?
print "Obscure corner case?"
> seems to be compiled into these byte codes
> 6 BUILD_LIST
> 9 POP_TOP
> 10 LOAD_CONST 0 (<code object test at 0091FD20, ...)
> 13 MAKE_FUNCTION 0
> 16 STORE_NAME 2 (test)
> It seems BUILD_LIST / POP_TOP / LOAD_CONST / MAKE_FUNCTION is the
> sequence which should trigger the magic.
I don't recall Guido's patch. Did he modify the grammar or can it all
be done inside the compiler? Not that it's practical for 2.4, but I
think it wouldn't be hard to post-process the existing AST to
recognize decorators written like this.
You'd like for adjacent statements of the form:
and replace them with a single
Or do we need to catch Expr(ListComp()) too? PEP 318 doesn't mention
semantics anywhere, so it doesn't say what is allowed inside the
More information about the Python-Dev