我有一個Django站點,它有一個Item
對象,它有一個布爾型屬性active
。我願做這樣的事情,從假屬性切換爲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()
天然蟒蛇neg()
方法似乎返回一個整數的否定,而不是一個布爾值的否定。
感謝您的幫助。
+1 OMG,從來不知道這是可能的,它確實有道理,但我從來沒有想過它!很好的答案! (儘管'bool(1-True)'比'not True'慢一點) –
可能的,是的。有用?不見得!大多數語言都可以做很多這樣的醜陋事情,但這對大多數讀者來說是非常混亂的。也許在一個非常特殊的情況下這可能是有道理的... – BuvinJ