(no) fast boolean evaluation ? missing NOT
Stef Mientki
S.Mientki-nospam at mailbox.kun.nl
Fri Aug 3 07:16:51 EDT 2007
Laurent Pointal wrote:
> Stef Mientki a écrit :
>> <Python>
>> def Some_Function (const):
>> print 'Ive been here', const
>> return True
>>
>> A = True
>>
>> if A and Some_Function (4 ):
>> print 'I knew it was True'
>> else:
>> print 'I''ll never print this'
>> </Python>
>>
>> <Output>
>> Ive been here 4
>> I knew it was True
>> </Output
>>
>> I was expected that the function would not be called,
>> because A is True.
>
> When using the *and* operator, the short-circuit evaluation is done if A
> is False (no need to know the other operand, the result cannot be True).
> But if A is True, the compiler must evaluate the second parameter to
> know the expression result.
Sorry you're completely right,
and indeed I must have something very stupid !!
thanks very much
Stef Mientki
More information about the Python-list
mailing list