Tôi có một trang web Django, với đối tượng Item
có thuộc tính boolean active
. Tôi muốn làm điều gì đó như thế này để chuyển tài sản từ False True và ngược lại:Có cách nào để phủ nhận boolean được trả về biến không?
def toggle_active(item_id):
item = Item.objects.get(id=item_id)
item.active = !item.active
item.save()
cú pháp này có giá trị trong nhiều ngôn ngữ C-based, nhưng dường như không hợp lệ trong Python. Có một cách khác để làm điều này KHÔNG sử dụng:
if item.active:
item.active = False
else:
item.active = True
item.save()
Các nguồn gốc phương pháp python neg()
dường như trở sự phủ định của một số nguyên, không phải là phủ định của một boolean.
Cảm ơn sự giúp đỡ.
+1 OMG, không bao giờ biết điều này là có thể, nó có ý nghĩa nhưng tôi chưa bao giờ nghĩ về điều đó !! Câu trả lời chính xác! (Mặc dù 'bool (1-True)' là một chút chậm hơn sau đó 'không True') –
Có thể, có. Hữu ích? Không có khả năng! Có rất nhiều thứ xấu xí mà bạn có thể làm với hầu hết mọi ngôn ngữ, nhưng điều này chỉ gây nhầm lẫn cho hầu hết người đọc. Có lẽ trong một bối cảnh rất đặc biệt, điều này có thể có ý nghĩa ... – BuvinJ