I have some code like this:
if var:
if var2 == getSomeValue()
This could be in a single expression.
if var and var2 == getSomeValue():
...but getSomeValue()
can only be called if var
is True.
So, when calling if var and var2 == getSomeValue()
, are both evaluated by the interpreter, or the evaluation stops at var
if False
? Where I can find this information on python documentation? (I didn't know what to search...:/ )
This is called short-circuiting, and Python does it, so you're good.
UPDATE: Here's a quick example.
>>> def foo():
... print "Yay!"
...
>>> if True and foo() is None:
... print "indeed"
...
Yay!
indeed
>>> if False and foo() is None:
... print "nope"
...
UPDATE 2: Putting the relevant PEP (308) in my answer so it doesn't get overlooked in the excellent comment from @Somebody still uses you MS-DOS.