if, continuation and indentation

MRAB python at mrabarnett.plus.com
Thu May 27 10:32:53 EDT 2010


HH wrote:
> I have a question about best practices when it comes to line wrapping/
> continuation and indentation, specifically in the case of an if
> statement.
> 
> When I write an if statement with many conditions, I prefer to use a
> parenthesis around the whole block and get the implicit continuation,
> rather than ending each line with an escape character.  Thus, using
> the example from the style guide (http://www.python.org/dev/peps/
> pep-0008/) I would write:
> 
>     if (width == 0 and
>         height == 0 and
>         color == 'red' and
>         emphasis == 'strong' or
>         highlight > 100):
>         raise ValueError("sorry, you lose")
> 
> The problem should be obvious -- it's not easy to see where the
> conditional ends and the statement begins since they have the same
> indentation.  Part of the problem, I suppose, is that Emacs indents
> 'height' and the other lines in the conditional to 4 spaces (because
> of the parenthesis).  How do people deal with this situation?
> 
I would probably use half-indentation:

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

Try doing that with tabs! :-)



More information about the Python-list mailing list