1
Python有inplace operators这样-=
和|=
算术和位操作:Python的就地布尔运算符
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 operators这样-=
和|=
算术和位操作:Python的就地布尔运算符
FLAG_FOO = 1 << 0
FLAG_BAR = 1 << 1
mask = FLAG_FOO
mask |= FLAG_BAR
assert mask == 3 == FLAG_FOO | FLAG_BAR
是否有实际True
/False
布尔等同?
正如this question提到的,按位&
(和)和|
(或)为bool
变量做工精细:
foo = False
foo |= True
assert foo == True == False | True == False or True
当不使用就地运营商,它更习惯使用逻辑and
和or
运营商。使用布尔运算符上的位运算符可能会令人困惑,因为例如~True
是-2
,而不是False
。