def fun():

Is exactly the same as:

def fun()

fun = something(fun)

So you can’t make a distinction based whether a given usage  is as a decoration.


On Tue, Mar 19, 2019 at 12:26 PM Greg Ewing <> wrote:
Sylvain MARIE via Python-ideas wrote:
> `my_decorator(foo)` when foo is a callable will always look like
> `@my_decorator` applied to function foo, because that's how the language is
> designed.

I don't think it's worth doing anything to change that. Everywhere
else in the language, there's a very clear distinction between
'foo' and 'foo()', and you confuse them at your peril. I don't see
why decorators should be any different.

Python-ideas mailing list
Code of Conduct:
Christopher Barker, PhD

Python Language Consulting
  - Teaching
  - Scientific Software Development
  - Desktop GUI and Web Development
  - wxPython, numpy, scipy, Cython