有“+ =”运算符,即int。
a = 5
a += 1
b = a == 6 # b is True
bool是否有“and =”运算符?
a = True
a and= 5 > 6 # a is False
a and= 5 > 4 # a is still False
我知道,这个'和''运算符对应于:
a = True
a = a and 5 > 6 # a is False
a = a and 5 > 4 # a is still False
但是,我经常这样做,我觉得它看起来不太整洁。
由于
答案 0 :(得分:9)
是的 - 您可以使用&=
。
a = True
a &= False # a is now False
a &= True # a is still False
您可以类似地使用|=
作为“或=”。
应该注意(如下面的评论中)这实际上是一个按位操作;如果a
以布尔值开头,它将具有仅的预期行为,并且操作仅在布尔值下执行。
答案 1 :(得分:4)
nrpeterson向您展示了如何将&=
与布尔值一起使用。
我只展示如果混合布尔和整数
会发生什么a = True
a &= 0 # a is 0
if a == False : print "hello" # "hello"
a = True
a &= 1 # a is 1
if a == False : print "hello" # nothing
a = True
a &= 2 # a is 0 (again)
if a == False : print "hello" # "hello"
a = True
a &= 3 # a is 1
if a == False : print "hello" # nothing
答案 2 :(得分:3)
您可以查看运算符库: http://docs.python.org/3/library/operator.html
这允许你做
a = True
a = operator.iand(a, 5>6) # a is False