On 10/07/2020 12:33, Greg Ewing wrote:
A thought about the indentation level of a speculated "else" clause...
Some people have argued that "else" should be at the outer level,
because that's the way it is in all the existing compound statements.
However, in those statements, all the actual code belonging to the
statement is indented to the same level:
if a:
....
elif b:
....
else:
....
^
|
Code all indented to this level
But if we were to indent "else" to the same level as "match",
the code under it would be at a different level from the rest.
match a:
case 1:
....
case 2:
....
else:
....
^ ^
| |
Code indented to two different levels
This doesn't seem right to me, because all of the cases, including
the else, are on the same footing semantically, just as they are in
an "if" statement.
I feel all those who aren't directly arguing against it are working off
the assumption that it is needed for match and case to have different
levels of indentation, but is this really true? Is there anything (bar
tradition or other subjective arguments) that speaks in favour of this,
especially in light of the fact that having the same indentation level
would also solve other problems?
A few emails ago I proposed something like this (and I'm probably only
the last one to do so amongst many), but if anyone made an argument
against it I must have missed it:
match:
a
case 1:
...
case 2:
...
else:
...
(The a on a separate line being arguable.)
I think it would look neater, be reminiscent of the if/elif/else syntax
we're all familiar with, and solve the issue of where to indent the else.
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at
https://mail.python.org/archives/list/python-dev@python.org/message/6B45E57SNMHDH4EYOAXCBPJRNIE6SAVR/
Code of Conduct: http://python.org/psf/codeofconduct/