Ho un sito Django, con un oggetto Item
con proprietà booleane active
. Mi piacerebbe fare qualcosa di simile per alternare la proprietà da false a true e viceversa:C'è un modo per annullare un valore booleano restituito alla variabile?
def toggle_active(item_id):
item = Item.objects.get(id=item_id)
item.active = !item.active
item.save()
Questa sintassi è valida in molti linguaggi C-based, ma sembra non valida in Python. C'è un altro modo per fare questo senza usare:
if item.active:
item.active = False
else:
item.active = True
item.save()
Il metodo nativo pitone neg()
sembra tornare la negazione di un numero intero, non la negazione di un valore booleano.
Grazie per l'aiuto.
+1 OMG, non ho mai saputo che fosse possibile, ha senso ma non ci ho mai pensato !! Bella risposta! (Anche se 'bool (1-True)' è un po 'più lento allora' non vero ') –
Possibile, sì. Utile? Non probabile! Ci sono un sacco di cose brutte che puoi fare con la maggior parte delle lingue, ma questo è terribilmente confuso per la maggior parte dei lettori. Forse in un contesto molto speciale questo potrebbe avere senso ... – BuvinJ