On 09/02/2013 10:45 AM, Antoon Pardon wrote:
Op 02-09-13 10:05, Steven D'Aprano schreef:
It doesn't keep a whole chain of
if clauses together. It doesn't let you do anything that you haven't
already done. It just saves an indent and a newline. The cost, on the
other hand, includes the risk that people will try to do this:

for item in seq: if cond:
     do_this()
     do_that()
     else:
         do_something else()

which is clearly nonsense. Worse is this:

for item in seq: if cond:
     do_this()
     do_that()
else:
     do_something else()

which is still nonsense but won't raise SyntaxError.
Why shouldn't this raise a SyntaxError?

Because it would be parsed as a valid for .. else construct. Either that or become ambiguous to the programmer, who would not be sure whether he was writing an else clause for the `if`, or for the `for`.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to