[Python-Dev] Questions about '@' in pep 318

"Martin v. Löwis" martin at v.loewis.de
Fri Aug 6 20:38:16 CEST 2004


Edward K. Ream wrote:
> I agree.  The argument that @ lines aren't clearly "attached" to functions
> seems much more convincing to me.

I can't see that. In Python, things at the same indentation level all
belong together. Would you say that in

   try:
      foo()
      more_code()
   except expr:
      bar()

the except is not attached to the try? You probably wouldn't, because
you know they belong together. However, you equally have no problem
seeing how

   while:
      foo()
      more_code()
   if expr:
      bar()

the while and the if don't belong together. People can learn these
things, and learning the @ thing seems very easy.

> 2.  Maybe the @ syntax is somehow the best alternative, considered in
> isolation.  Fair enough.  But how much better?  Enough to justify a major
> change to the language?  What is so unreadable about def (...)[...]: ?

That parameters and decorators are essentially in a single sequence, 
just separated by )[. It is important that you can easily tell how many
parameters a function has, and how it is decorated.

Furthermore, this syntax *will* break more tools than the @decorator
syntax.

> In short, a major change to Python (@) would seem to demand a truly
> convincing justification.  IMO, the argument that @ is more readable than
> def (...)[...]: doesn't even come _close_ to such a justification.

Take into account also breakage of existing tools.

Regards,
Martin


More information about the Python-Dev mailing list