Булевый оператор 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,

Другие вопросы по тегам