Булевый оператор Python на месте
Python имеет операторы на месте, такие как -=
а также |=
для арифметических и битовых операций:
FLAG_FOO = 1 << 0
FLAG_BAR = 1 << 1
mask = FLAG_FOO
mask |= FLAG_BAR
assert mask == 3 == FLAG_FOO | FLAG_BAR
Есть ли эквивалент для фактического True
/False
Булевы?
1 ответ
Как уже упоминалось в этом вопросе, побитовый &
(и и |
(или) отлично работает для bool
переменные:
foo = False
foo |= True
assert foo == True == False | True == False or True
Когда не используются операторы на месте, более логично использовать логические and
а также or
операторы. Использование битовых операторов в логических значениях может быть затруднительным, потому что, например, ~True
является -2
не False
,