On 28/05/2010 11:34, Jean-Michel Pichavant wrote:
Jonathan Hartley wrote:
On May 27, 1:57 pm, Jean-Michel Pichavant <jeanmic...@sequans.com>
wrote:
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?
      Thanks,
Henrik
One possible solution

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

JM

I've always liked this, or even:

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


but my co-workers have uniformly gone bananas whenever I try it.
I tried to give a layout that fits the OP way of doing, but I would not use what I described above, so I can understand why your co workers go bananas :)

when it comes to extended conditions in if statement I prefer to write something like

if self.haveLost():
   raise ValueError("sorry, you lose")

It drastically improves the reading

Good point.

+1 for naming the condition, hooray for self-documenting code.

Sometime last year at my workplace, we started referring to comments as 'lies', we now always try to use techniques like this instead of comments.

--
Jonathan Hartley      Made of meat.      http://tartley.com
tart...@tartley.com   +44 7737 062 225   twitter/skype: tartley

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to