On May 27, 5:22 am, HH <henri...@gmail.com> 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? > > Thanks, > Henrik
To show another alternative, I like: if (width == 0 and height == 0 and color == 'red' and emphasis == 'strong' or highlight > 100): raise ValueError("sorry, you lose") This works because and/or can not start an expression, so it is obvious that they continue the expression from the previous line. If I run out of room to put a full and/or clause on one line, then I'll indent the subclause two levels. -- Greg -- http://mail.python.org/mailman/listinfo/python-list