In which order is an if statement evaluated in Python

后端 未结 5 1859
醉酒成梦
醉酒成梦 2020-12-03 20:56

If you have an if statement where several variables or functions are evaluated, in which order are they evaluated?

if foo > 5 or bar > 6:
    print \'f         


        
5条回答
  •  遥遥无期
    2020-12-03 21:33

    The left clause will be evaluated first, and then the right one only if the first one is False.

    This is why you can do stuff like:

    if not person or person.name == 'Bob':
        print "You have to select a person and it can't be Bob"
    

    Without it breaking.

    Conversely, with an and clause, the right clause will only be evaluated if the first one is True:

    if person and person.name:
       # ...
    

    Otherwise an exception would be thrown when person is None.

提交回复
热议问题