2011-10-11 6 views
4

저는 파이썬을 더 잘 이해하려고 노력하고 있습니다. 괄호가없는 이유는 약간 혼란 스러울 수 있습니다.연산자 우선 순위 : not 및 comparison

(not a < b < c)은 어떻게 평가됩니까? (not a) < b < c이 맞나요? 또는 not (a < b < c)?

reference manual에 따르면 not<보다 낮거나 높은 우선 순위를 갖고 있습니까? 우선 순위가 더 높은 사업자가 더 낮은 사업자보다 먼저 평가한다고 가정합니다. 나는 지금 양말 인형을 탈옥시키는 누군가가 필요하다고 느낀다.

Python 2.4 reference manual에 따르면 비교 및 ​​비교는 우선 순위가 다릅니다. 그렇다면 Python 2.7 reference manual에는 비교가없는 것이 우선합니다.

내가 실수하지 않는다면 not a < b < c은 파이썬 버전에 따라 다양한 결과를 나타냅니다. 누군가이 성명서가 어떻게 평가되는지 나누시기 바랍니다.

내가 not (a < b < c)

+3

특정 평가 주문이 필요한 경우 괄호를 추가하십시오. 코드를 읽는 사람들은 문서 확인을 피하는 것이 훨씬 행복 할 것입니다. – JBernardo

+2

코드를 연산자 우선 순위보다 더 잘 이해할 수 있습니다. 'a agf

+2

나는'dis'와'ast' 모듈이 그러한 질문에 도움이된다고 생각합니다. 'ab.d' (λ a, b, c : a eryksun

답변

7

당신이 2.7 설명서에보고하고 무엇을 고수하고있어이 같은 우선 순위에서 not inis not 포함한 모든 관계 사업자이다; 부울 not은 여전히 ​​한 단계 낮은 우선 순위이므로 관계형 비교가 먼저 발생합니다.

+0

네가 맞아, 나는 그걸 충분히 읽지 못했다. – Jake

+0

+1. 분명히 말하자면, "관계형 비교"는 (a

관련 문제