Python 有inplace 运算符,例如用于算术和位运算的 and -=
:|=
FLAG_FOO = 1 << 0
FLAG_BAR = 1 << 1
mask = FLAG_FOO
mask |= FLAG_BAR
assert mask == 3 == FLAG_FOO | FLAG_BAR
True
实际/False
布尔值是否有等价物?
Python 有inplace 运算符,例如用于算术和位运算的 and -=
:|=
FLAG_FOO = 1 << 0
FLAG_BAR = 1 << 1
mask = FLAG_FOO
mask |= FLAG_BAR
assert mask == 3 == FLAG_FOO | FLAG_BAR
True
实际/False
布尔值是否有等价物?
正如这个问题中提到的,按位&
(和)和|
(或)对bool
变量工作正常:
foo = False
foo |= True
assert foo == True == False | True == False or True
and
当不使用就地操作符时,使用逻辑和操作符更为惯用or
。在布尔值上使用位运算符可能会造成混淆,因为例如~True
is -2
, not False
。