Please stop debating `<expr> as <name>`. Nobody is being swayed by anything
in this subthread. Let's move on.
On Sun, Apr 22, 2018 at 3:27 PM, Chris Angelico
On Mon, Apr 23, 2018 at 8:20 AM, Mike Miller
wrote: On 2018-04-22 14:33, Chris Angelico wrote:
with open(fn) as f: with (open(fn) as f):
These two do the same thing, but only because a file object's __enter__ returns self. So it's dangerous, because it WILL work... and people will get into the habit of parenthesizing to permit a 'with' statement to go across line breaks. And then they'll use a different context manager, like closing(), or a PsycoPG2 database connection (I think), where it returns something else. And it'll work, until they go over multiple lines, and then suddenly the semantics change.
Why do you think folks will be rushing to parenthesize with statements
when
it has always been a syntax error, there is years of code and docs that show otherwise, no use cases, and will take years for 3.8 to trickle out?
Because it's been requested a number of times as a way to allow a 'with' statement to go across lines without backslashes.
If it becomes possible, it will be used.
ChrisA _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ guido%40python.org
-- --Guido van Rossum (python.org/~guido)