When you use or
, it will either return the first value in the expression if it's true, else it will blindly return the second value. I.e. or
is equivalent to:
def or_(a, b):
if a:
return a
else:
return b
For and
, it will return its first value if it's false, else it returns the last value:
def and_(a, b):
if not a:
return a
else:
return b