Python inplace布尔运算符

时间:2017-04-21 01:32:26

标签: python-3.x operators augmented-assignment

Python有inplace operators,例如-=|=,用于算术和位操作:

FLAG_FOO = 1 << 0
FLAG_BAR = 1 << 1
mask = FLAG_FOO
mask |= FLAG_BAR
assert mask == 3 == FLAG_FOO | FLAG_BAR

是否有实际True / False布尔人的等效内容?

1 个答案:

答案 0 :(得分:1)

this question中所述,按位&(和)和|(或)适用于bool变量:

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

如果不使用inplace运算符,使用逻辑andor运算符会更加惯用。使用布尔运算器上的位运算符可能会令人困惑,因为例如~True-2,而不是False