PEP 8 and indentation of continuation lines

John Yeung gallium.arsenide at gmail.com
Tue Jun 21 00:11:56 EDT 2011


Lurking on python-dev, I noticed a thread early this month (starting
June 2) about possible additions to PEP 8 covering indentation of
continuation lines.  The recommendation was to double-indent
continuation lines which are about to introduce a new suite, unless
you are going to base your indentation on the opening paren.  Examples
from that thread include

def some_really_long_function_name(
        an_argument,
        another_argument,
        and_a_third_argument):
    foo()

if some_really_long_function_name(
        an_argument,
        another_argument,
        and_a_third_argument):
    foo()

So last week PEP 8 was updated to reflect this.  All fine and good.  I
happen to prefer this style myself.  But there remains an example
further down (left over from earlier incarnations of PEP 8) which
might go against this:

if (width == 0 and height == 0 and
    color == 'red' and emphasis == 'strong' or
    highlight > 100):
    raise ValueError("sorry, you lose")

The above satisfies the "opening paren" alignment, but due to the
length of the keyword, the suite is obscured.  For this example,
should PEP 8 use the double-indentation for the continuation lines?
(There was also discussion of this in a comp.lang.python thread last
year, subject: if, continuation and indentation, started May 27.)

John Y.



More information about the Python-list mailing list