book example confusion

Bruno Desthuilliers bdesth.quelquechose at
Fri Sep 12 19:40:08 CEST 2008

byron a écrit :
> I am reading o'reilly's learning python (great book), but i came
> across an example (pg 291, pdf) that I am not quite understanding the
> reasoning for the author's explanation:
> if f1() or f2():
> The author states that do to the nature of that expression, if f1()
> returns True, f2() will not be evaluated.. which makes sense. His
> quote:
>         "Here, if f1 returns a true (or nonempty) value, Python will
> never run f2."
> He then states:
>         "To guarantee that both functions will be run, call them
> before the 'or':"
> tmp1, tmp2 = f1(), f2()
> if tmp1 or tmp2:
> Being that each function is an object, a name assignment to
> (tmp1,tmp2) doesn't actually evaluate or run the function itself until
> the name is called..

It (well... they) is (are) actually called. The parens are the call 

More information about the Python-list mailing list