[python] 변수에 반환 된 부울을 부정하는 방법이 있습니까?

Item부울 속성이있는 개체 가있는 Django 사이트 가 있습니다 active. 속성을 False에서 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()메서드는 부울의 부정이 아닌 정수의 부정을 반환하는 것 같습니다.

도와 주셔서 감사합니다.



답변

다음과 같이 할 수 있습니다.

item.active = not item.active

그것은 트릭을해야합니다 🙂


답변

당신이 원하는 것 같아요

item.active = not item.active


답변

item.active = not item.active 비단뱀적인 방법입니다


답변

이를 수행하는 또 다른 (덜 간결하고 읽기 쉽고 산술적) 방법은 다음과 같습니다.

item.active = bool(1 - item.active)


답변

부울의 부정은 not입니다.

def toggle_active(item_id):
    item = Item.objects.get(id=item_id)
    item.active = not item.active
    item.save()

감사합니다, 그것은 번개처럼 빠른 응답이었습니다!


답변

간단합니다.

item.active = not item.active

따라서 마지막으로 다음과 같이 끝납니다.

def toggleActive(item_id):
    item = Item.objects.get(id=item_id)
    item.active = not item.active
    item.save()


답변