[Python-ideas] Fwd: Make parenthesis optional in parameterless functions definitions
Alexander Walters
tritium-list at sdamon.com
Fri Apr 1 10:36:27 EDT 2016
On 3/31/2016 19:22, Ben Finney wrote:
> No mention of keystrokes. I'm endlessly disappointed that discussions of
> “too much noise in the code” are mis-interpreted as*only* about
> writing, not about reading.
Because, presumably, the people making those comments read a lot of code
and don't see a problem with the two characters?
>>> def foo():
... pass
...
There are four pieces of information in the first line of that
definition. It starts with the keyword at the beginning of the line.
Readers of languages that are left to right will instantly know they are
in a function definition. The next piece of information is the
identifier that the function will be assigned too, and that is clearly
defined right there. The proposal would not change this. The third is
the argument list, in this case an empty one. The fourth is the 'block
delimiter' for lack of anything better for me to call it.
As this example sits, that line should be read as "define a function
named foo that explicitly takes no arguments with the following code."
Omitting the parens changes the way it reads to something along the
lines of "define a function named foo with the following code." The
proposal has removed vital visual information.
I said earlier that if this suggestion was made in 1991 it should have
been accepted to make functions more consistent with classes. I have
changed my mind; in 1991 classes should have been corrected to always
require parens.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20160401/483ac36d/attachment.html>
More information about the Python-ideas
mailing list