Tengo un sitio Django, con un objeto Item
que tiene una propiedad booleana active
. Me gustaría hacer algo como esto para cambiar la propiedad de falso a verdadero y viceversa:¿Hay alguna forma de anular una variable booleana devuelta?
def toggle_active(item_id):
item = Item.objects.get(id=item_id)
item.active = !item.active
item.save()
Esta sintaxis es válida en muchos lenguajes basados en C, pero parece válida en Python. ¿Hay otra manera de hacer esto sin usar:
if item.active:
item.active = False
else:
item.active = True
item.save()
El método nativo pitón neg()
parece volver la negación de un entero, no la negación de un valor lógico.
Gracias por la ayuda.
+1 OMG, nunca supe que esto fuera posible, tiene sentido pero nunca lo pensé !! ¡Gran respuesta! (Aunque 'bool (1-True)' es un poco más lento que 'not True') –
Posible, sí. ¿Útil? ¡No es probable! Hay toneladas de cosas tan feas que puedes hacer con casi cualquier idioma, pero esto es terriblemente confuso para la mayoría de los lectores. Quizás en un contexto muy especial, esto podría tener sentido ... – BuvinJ