Open
Description
Feature or enhancement
Proposal:
I've implemented a special syntax error in the case that an elif
follows an else
. See here.
if i % 3 == 0:
print("divisible by 3")
else:
print("not divisible by 3")
elif i % 2 == 0:
print("divisible by 2")
# SyntaxError: elif not allowed after else
This is currently the extent of the new behavior. If possible, I would be interested to implement behavior like this:
if isinstance(i, int):
if i % 3 == 0:
print("divisible by 3")
else:
print("not divisible by 3")
elif isinstance(i, str):
print("i is a string")
# SyntaxError: elif not allowed after else. Perhaps the elif is at the wrong indentation level?
This would be even more informative for beginners, but I'm not sure if the parser supports that level of state. In particular, we wouldn't want the latter syntax error (the one that suggests that the indentation level is wrong) to be raised if the invalid elif were within a for block.
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response