반응형
질문
만약 이렇게 한다면:
>>> False in [False, True]
True
그것은 True
를 반환합니다. 단순히 False
가 리스트 안에 있기 때문입니다.
하지만 이렇게 한다면:
>>> not(True) in [False, True]
False
그것은 False
를 반환합니다. 반면에 not(True)
는 False
와 동일합니다:
>>> not(True)
False
왜 그럴까요?
답변
연산자 우선순위 2.x, 3.x. not
의 우선순위는 in
보다 낮습니다. 따라서 다음과 동일합니다:
>>> not ((True) in [False, True])
False
원하는 결과는 다음과 같습니다:
>>> (not True) in [False, True]
True
@Ben이 가리키듯이: not(True)
대신에 not True
을 사용하는 것이 권장됩니다. 전자는 함수 호출처럼 보이지만, not
은 연산자이며 함수가 아닙니다.
반응형
댓글