2016-07-10 3 views
6

는 최근 다음 반환 True는 것을 발견했다.어디서 파이썬 워드 프로세서에서`in` 연산자가 연결될 수 있습니까?</p> <pre><code>'a' in 'ab' in 'abc' </code></pre> <p>내가 <code>a < b < c</code> 같은 체인 파이썬 비교 알고 있어요,하지만 난이 법적 것에 대해 워드 프로세서에서 아무것도 볼 수 없습니다 :

CPython을 구현할 때 우발적 인 기능입니까, 아니면이 동작이 지정되어 있습니까?

답변

8

이것은 완전히 지정된 동작이며 의도하지 않은 기능입니다. 운영자 체인은 Comparison operators section에 정의되어

는 는 는

비교 한 번만 평가 될 수 y 제외하고는, 예를 들어, x < y <= zx < y and y <= z에 해당 임의로 체인 될 수있다 (그러나 z 전혀 평가되지 않습니다 두 경우 모두 x < y가 발견

때 거짓이 됨).

in은 비교 연산자 중 하나입니다.

comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "<>" | "!=" 
        | "is" ["not"] | ["not"] "in" 

이 없음 예외가 훨씬 이해가되지 수 조합에 대해 수행되지 않습니다 : 같은 섹션.

는 예를 들어 사용되는 특정 표현 따라서 번만 실행되고 (로드) 리터럴 'ab''a' in 'ab' and 'ab' in 'abc' 실행된다.

+0

다른 페이지에서 [비교] (https://docs.python.org/3/library/stdtypes.html#comparisons) 섹션을보고 있는데,이 섹션에는'in'이 표시되지 않습니다 – Eric

+1

@Eric 그 섹션의 맨 아래 : 동일한 구문 우선 순위를 갖는 두 개의 더 많은 연산 인'in'과'not in'은 시퀀스 타입 (아래)에 의해서만 지원됩니다. * 제한 때문에 테이블에 나열되지 않습니다. –