(no) fast boolean evaluation ?

Frank Swarbrick infocat at earthlink.net
Sat Aug 4 00:49:12 EDT 2007


Ian Clark wrote:
> Stef Mientki wrote:
>> hello,
>>
>> I discovered that boolean evaluation in Python is done "fast"
>> (as soon as the condition is ok, the rest of the expression is ignored).
>>
>> Is this standard behavior or is there a compiler switch to turn it 
>> on/off ?
> 
> It's called short circuit evaluation and as far as I know it's standard 
> in most all languages. This only occurs if a conditional evaluates to 
> True and the only other operators that still need to be evaluated are 
> 'or's or the condition evaluates to False and all the other operators 
> are 'and's. The reason is those other operators will never change the 
> outcome: True or'd with any number of False's will still be True and 
> False and'ed to any number of Trues will still be False.
> 
> My question would be why would you *not* want this?

Pascal, and apparently Fortran, do not use short-circuit evaluation.  I 
remember learning this gotcha in my seventh-grade Pascal class (plus I 
just googled it to make sure my memory was correct!).

Frank



More information about the Python-list mailing list