Is this valid ?
Steven D'Aprano
steve at REMOVE-THIS-cybersource.com.au
Thu Mar 20 19:06:54 EDT 2008
On Thu, 20 Mar 2008 15:09:08 +0100, Rolf van de Krol wrote:
> John Machin wrote:
>> Of course. You can chain comparisons as much as you like and is
>> (semi-)sensible, e.g.
>>
> Hmm, 'of course' is not the correct word for it.
Not at all. The Original Poster tried something, and it worked. There
were two alternatives:
(1) Writing a == b == 2 is valid.
(2) In the sixteen years that Python has been publicly available, with
tens of thousands or more developers using it, nobody had noticed that
Python had a bug in the compiler which incorrectly allowed a == b == 2
until Stef Mientki came along and discovered it.
Given those two alternatives, (2) would be very surprising indeed, and so
I think "of course" is well justified.
That Python allows chaining comparisons this way isn't really surprising.
That's a very natural thing to do. What's surprising is that other
languages *don't* allow chaining comparisons, but force you to write the
inefficient and (sometimes) confusing "(a == 2) and (b == 2)" instead.
--
Steven
More information about the Python-list
mailing list