[Python-ideas] with statement syntax forces ugly line breaks?
Mark Summerfield
mark at qtrac.eu
Wed Sep 8 18:50:29 CEST 2010
Hi,
I can't see a _nice_ way of splitting a with statement over mulitple
lines:
class FakeContext:
def __init__(self, name):
self.name = name
def __enter__(self):
print("enter", self.name)
def __exit__(self, *args):
print("exit", self.name)
with FakeContext("a") as a, FakeContext("b") as b:
pass # works fine
with FakeContext("a") as a,
FakeContext("b") as b:
pass # synax error
with (FakeContext("a") as a,
FakeContext("b") as b):
pass # synax error
The use case where this mattered to me was this:
with open(args.actual, encoding="utf-8") as afh,
open(args.expected, encoding="utf-8") as efh: actual =
[line.rstrip("\n\r") for line in afh.readlines()] expected =
[line.rstrip("\n\r") for line in efh.readlines()]
Naturally, I could split the line in an ugly place:
with open(args.actual, encoding="utf-8") as afh, open(args.expected,
encoding="utf-8") as efh:
but it seems a shame to do so. Or am I missing something?
I'm using Python 3.1.2.
--
Mark Summerfield, Qtrac Ltd, www.qtrac.eu
C++, Python, Qt, PyQt - training and consultancy
"Rapid GUI Programming with Python and Qt" - ISBN 0132354187
http://www.qtrac.eu/pyqtbook.html
More information about the Python-ideas
mailing list