On 4 October 2016 at 23:20, Random832 <[email protected]> wrote: > On Tue, Oct 4, 2016, at 07:37, Nick Coghlan wrote: >> And when you add the "else" clause that's supported by both "for" and >> "if", what does that mean in the abbreviated form? >> >> for item in items if item is not None: >> ... >> else: >> # ??? >> >> Or is the implicit proposal that this form be special cased to >> disallow the "else" clause? > > I think it's obvious that it would be on the outermost construct (i.e. > the one that would still be at the same indentation level fully > expanded).
But would that interpretation be obvious to folks that aren't yet aware that you can have "else" clauses on loops? (Folks can be *years* into using Python before they first encounter that, whether in real code or in a "Did you know <this> about Python?" snippet) > The *real* question is what "break" should do. I think it should > likewise break from the outermost for-loop (but "continue" should still > continue the innermost one), but this does mean that it's not > mechanically identical to the "equivalent" nested loops [it would, > however, make it mechanically identical to the "generator and single > loop" form] Or we could stick with the status quo where limiting the keyword chaining to the expression form naturally avoids all of these awkward interactions with other statement level constructs. Cheers, Nick. -- Nick Coghlan | [email protected] | Brisbane, Australia _______________________________________________ Python-ideas mailing list [email protected] https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/
