有没有办法反转返回给变量的布尔值?
我有一个Django网站,里面有一个叫做Item
的对象,这个对象有一个布尔属性active
。我想做一些操作,把这个属性从假(False)切换到真(True),反之亦然:
def toggle_active(item_id):
item = Item.objects.get(id=item_id)
item.active = !item.active
item.save()
这种写法在很多以C为基础的编程语言中是有效的,但在Python中似乎不行。有没有其他方法可以做到这一点,而不使用:
if item.active:
item.active = False
else:
item.active = True
item.save()
Python自带的neg()
方法似乎是用来取整型的相反数,而不是布尔值的相反值。
谢谢大家的帮助。
6 个回答
14
item.active = not item.active
是一种很符合 Python 风格的写法。
17
我觉得你想要的是
item.active = not item.active
161
你可以这样做:
item.active = not item.active
这样就可以解决问题了 :)