[Python-ideas] Parenthesized Compound With Statement

Barry Warsaw barry at python.org
Wed Jul 3 17:48:07 CEST 2013


On Jul 03, 2013, at 08:38 AM, Guido van Rossum wrote:

>Clearly some people have interpreted this dogmatically as "never use
>backslashes", so I think we should explicitly update the PEP with more
>moderate language and an example.

How about this:

diff -r bd8e5c86fb27 pep-0008.txt
--- a/pep-0008.txt	Wed Jul 03 00:44:58 2013 +0200
+++ b/pep-0008.txt	Wed Jul 03 11:46:07 2013 -0400
@@ -158,9 +158,19 @@
 line continuation inside parentheses, brackets and braces.  Long lines
 can be broken over multiple lines by wrapping expressions in
 parentheses. These should be used in preference to using a backslash
-for line continuation.  Make sure to indent the continued line
-appropriately.  The preferred place to break around a binary operator
-is *after* the operator, not before it.  Some examples::
+for line continuation.
+
+Backslashes may still be appropriate at times.  For example, long,
+multiple ``with``-statements cannot use implicit continuation, so
+backslashes are acceptable::
+
+    with open('/path/to/some/file/you/want/to/read') as file_1, \
+            open('/path/to/some/file/being/written', 'w') as file_2:
+        file_2.write(file_1.read())
+
+Make sure to indent the continued line appropriately.  The preferred
+place to break around a binary operator is *after* the operator, not
+before it.  Some examples::
 
     class Rectangle(Blob):
 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20130703/7b2600eb/attachment.pgp>


More information about the Python-ideas mailing list