Операторите and и or
Operations and built-in functions that have a Boolean result always return 0 or False for false and 1 or True for true, unless otherwise stated. (Important exception: the Boolean operations or and and always return one of their operands.)
Което значи, че например:
>>> None or [1,2,3]
<<< [1, 2, 3]
Не изглежда много полезно? Нека имаме функции foo()
и bar()
. Искаме да върнем стойността върната от foo
, но ако тя е None
, False
или нещо друго, което се оценява до False
, да fallback-нем към резултата от bar
:
>>> return foo() or bar()
С оператора and
нещата са обратни. Ако foo
и bar
връщат нещо, което се оценява до истина, ще получим резултата на bar
. В противен случай - ще получим първия "негативен" резултат:
>>> return foo() and bar()