On 04/11/2018 02:55 PM, Chris Angelico wrote:
On Thu, Apr 12, 2018 at 4:38 AM, Ethan Furman wrote:
Context managers and except blocks don't do the same thing though, so
it's a false parallel.
They assign things to names using `as`. Close enough. ;)
The other two are
*dangerous* false parallels, because "with foo as bar:" is
semantically different from "with (foo as bar):";
If `with` is the first token on the line, then the context manager syntax should be enforced -- you get one or the
other, not both.
- puts the calculation first, which is what we are used to seeing in
if/while statements; and
Not sure what you mean here; if and while statements don't have
anything BUT the calculation.
Which is why we're using to seeing it first. ;)
A 'for' loop puts the targets before the evaluated expression.
Hmm, good point -- but it still uses a key word, `in`, to delineate between the
two.
- matches already existing expression-level assignments (context managers,
try/except blocks)
They're not expression-level assignments though, or else I'm
misunderstanding something here?
No, just me being sloppy with vocabulary.
--
~Ethan~
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/