On 28-May-10 05:54 AM, 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 liked:

On 27-May-10 08:48 AM, Xavier Ho wrote:
> On 27 May 2010 22:22, HH <henri...@gmail.com
> <mailto:henri...@gmail.com>> wrote:
>
>         if (width == 0 and
>             height == 0 and
>             color == 'red' and
>             emphasis == 'strong' or
>             highlight > 100):
>             raise ValueError("sorry, you lose")
>
>
> I've gotta say - I've bumped into this problem before, and I'm sure many
> other have - this is a valid question. It just hasn't bothered me enough
> to ask...
>
> Correct me if I'm wrong, but I think the following is equivalent, and
> looks better. Although this won't fix all ugly cases in that problem..
>
> if (width, height, color, emphasis) == (0, 0, 'red', 'strong') or
> highlight > 100:
>      raise ValueError("sorry, you lose")
>
> Cheers,
> Xav

but nobody commented.

Colin W.

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

Reply via email to