有没有一种方法来否定返回到variables的布尔值?
我有一个Django站点,具有active
的布尔属性的Item
对象。 我想要做这样的事情从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()
方法似乎返回一个整数的否定,而不是否定一个布尔值。
谢谢您的帮助。
你可以这样做:
item.active = not item.active
这应该够了吧 :)
我想你想要
item.active = not item.active
item.active = not item.active
是item.active = not item.active
方式
另一种(不太简洁的可读性,更算术)的方法是:
item.active = bool(1 - item.active)
布尔的否定not
。
def toggle_active(item_id): item = Item.objects.get(id=item_id) item.active = not item.active item.save()
谢谢你,这是一个闪电般的快速反应!
它很简单:
item.active = not item.active
所以,最后你会最终:
def toggleActive(item_id): item = Item.objects.get(id=item_id) item.active = not item.active item.save()