Est-il un moyen de nier un booléen retourné à la variable?
J'ai un site Django, avec un Item
objet qui a une propriété booléenne active
. Je voudrais faire quelque chose comme cela pour faire basculer la propriété de Faux à Vrai, et vice-versa:
def toggle_active(item_id):
item = Item.objects.get(id=item_id)
item.active = !item.active
item.save()
Cette syntaxe est valable dans de nombreux C-les langages, mais semble non valide en Python. Est-il une autre façon de le faire SANS l'aide de:
if item.active:
item.active = False
else:
item.active = True
item.save()
Le natif de python neg()
méthode semble renvoyer la négation d'un entier, et non pas la négation d'un booléen.
Merci pour l'aide.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire ceci:
Cela devrait faire l'affaire 🙂
Je pense que vous voulez
item.active = not item.active
est le pythonic façonL'autre (moins de
concislisible, plus l'arithmétique) façon de le faire serait:bool(1-True)
est un peu plus lent quenot True
)La négation pour les booléens est
not
.Merci les gars, c'était un foudre de la réponse rapide!
Simple à faire :
Donc, finalement, vous allez vous retrouver avec :