[Python-ideas] Make parenthesis optional in parameterless functions definitions
Ethan Furman
ethan at stoneleaf.us
Fri Apr 1 10:47:02 EDT 2016
On 04/01/2016 03:10 AM, Sven R. Kunze wrote:
> On 01.04.2016 11:52, Terry Reedy wrote:
>> On 4/1/2016 5:25 AM, Sven R. Kunze wrote:
>>
>>> I remember this "issue" with decorators as well.
>>>
>>> @property
>>> def foo....
>>>
>>> @lru_cache() # really?
>>> def bar...
>>
>> There is a sematic difference between the two examples. The ()s are
>> not optional. 'property' is a decorator that is applied to foo after
>> it is defined. 'lru_cache()' is a function call that returns a
>> decorator. Quite different.
>
> @Terry
> Thanks for snipping away the relevant explanation and not addressing my
> point. >.<
Your "point" appears to be that ()s are optional in the case of
decorators, and they are not -- decorators don't need them, and can't
have them*, while functions that return a decorator do need them and
must have them.
If you meant something else please offer a better explanation -- no need
to be snide with Terry.
--
~Ethan~
* Okay, it is possible to write a decorator that works either with or
without parens, but it's a pain, not general-purpose, and can be
confusing to use.
More information about the Python-ideas
mailing list