2

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布尔值是否有等价物?

4

1 回答 1

2

正如这个问题中提到的,按位&(和)和|(或)对bool变量工作正常:

foo = False
foo |= True
assert foo == True == False | True == False or True

and当不使用就地操作符时,使用逻辑和操作符更为惯用or。在布尔值上使用位运算符可能会造成混淆,因为例如~Trueis -2, not False

于 2017-04-21T01:32:25.900 回答