[Python-Dev] Re: Call for defense of @decorators (original) (raw)

Michael McLay mmclay at comcast.net
Fri Aug 6 20:06:31 CEST 2004


On Friday 06 August 2004 11:57 am, Guido van Rossum wrote:

> So I spent a little time futzing with python-mode and some of my > decorator code, to try some alternative leading characters. Of the ones > that cannot be used in valid Python code today (i.e. no backward > compatibility issues), I tried ':', '/', '=', '*', and '|'.

If the community can rally behind one of these, I think that would be acceptable. They all seem arbitrary, but so is the choice of '@'. :-)

Why was ';' not on Barry's list? It looks like it could be safely used as a leading character.

def f(): ... ; bar = 3 File "", line 2 ; bar = 3 ^ SyntaxError: invalid syntax

; descriptor=42 File "", line 1 ; descriptor=42 ^ SyntaxError: invalid syntax

Using ';' instead of '@' would also make creating a list of decorators on one line consistent with other uses of ';' since ';' is already used to indicate multiple statement on one line.

;framework_stuff(lots, of, args) class Quux(object):

;check_args(int, str)
;counted ;staticmethod
def frobnicate(foo, bar):
    pass

Admittedly the ';' does suffer from not being as visible as '@', but at least the tail on the bottom dot makes it more readable than the ':' character.

The other downside is the potential confusion it might cause to geriatric elisp programmers.



More information about the Python-Dev mailing list