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/

Reply via email to