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/

Reply via email to