if, continuation and indentation
Lie Ryan
lie.1296 at gmail.com
Mon May 31 17:15:05 EDT 2010
On 05/31/10 05:10, Colin J. Williams wrote:
> On 30-May-10 01:50 AM, Nathan Rice wrote:
>> On 27-May-10 08:48 AM, Xavier Ho wrote:
>> > On 27 May 2010 22:22, HH<henri... at gmail.com
>> <mailto:henri... at gmail.com>> <mailto:henri... at gmail.com
>> <mailto:henri... at 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.
>>
>>
>> Colin:
>> Sure, you can do it that way. IMO, though, the OP was wrong,
>> and so
>> is the PEP. Source code is meant to communicate. So it must
>> transmit
>> the correct information to the computer; it also must inform your
>> coworkers. That means that you have a responsibility to care
>> what
>> they think, though you privately have your opinions. Another
>> reason
>> the PEP is faulty in this circumstance is that a misplaced
>> backslash,
>> or a missing one, is easily found and fixed. A misplaced
>> parentheses,
>> or just one of a pair, will transform your source code into
>> something
>> which may compile and then give faulty results: a disaster.
>> So keep it simple, and make it legible.
>> Yours,
>> John
>>
>>
>> IMHO complete garbage, if your editor doesn't show misplaced or
>> missing parenthesis by highlighting you're using the wrong editor :)
>>
>>
>
> Perhaps the arrangement below shows the matching a little better than
> the Xav suggestion. The main point is that, to me, the tuple shows the
> item by item matching better than a series of and clauses:
>
> # tif.py
>
> (width, height, color, emphasis)= 0, 0, 'red', 'strong'
> highlight= 99
> if (width, height, color, emphasis) == \
> ( 0, 0, 'red', 'strong') or highlight> 100:
> raise ValueError("sorry, you lose")
How about:
all(a == b for a,b in ((width, 0), (height, 0), (color, 'red'),
(emphasis, 'strong'))))
More information about the Python-list
mailing list