[Python-Dev] Re: PEP 318: Decorators last before colon

Simon Percivall s.percivall at chello.se
Wed Mar 31 11:10:23 EST 2004


On 2004-03-31, at 17.42, Guido van Rossum wrote:

>>> Taking the prefix position as given for the moment, why overload list
>>> literal syntax versus something currently illegal and meaningless?
>>> Such as
>>>
>>> <decorator>      # almost as easy, or
>>
>> Yes. This looks better and will make it more clear that it's a special
>> case. Otherwise the decorators will look too decoupled from the
>> function.
>
> Why does <...> look better than [...]?  To me, <...> just reminds me
> of XML, which is totally the wrong association.
>
> There are several parsing problems with <...>: the lexer doesn't see <
> and > as matched brackets, so you won't be able to break lines without
> using a backslash, and the closing > is ambiguous -- it might be a
> comparison operator.
>

I'm not sure <decorator> is the best solution but it sure is better 
than [decorator]. Someone learning Python will probably be profoundly 
confused when seeing that special case. It also really feels like the 
decorators are decoupled from the function. The coupling between the 
decorators and the function would perhaps not appear to be greater with 
another syntax; but it would stand out.

Unlike docstrings which are used a lot and which documentation and 
books explain early on, decorators won't be used that much. It would 
only make it harder to learn Python if someone looks through code and 
sees a decorator. Also: When explaining lists in a book you'd have to 
mention that "there are special cases which we will discuss in an 
addendum to chapter 27".

Also, it'll make it so much harder to search for decorators if they are 
lists instead of a special syntax.




More information about the Python-Dev mailing list