Python에서 "=="와 "is" 동일성 테스트의 차이점 이해
Python에서 "=="와 "is"를 구별 "is" 동등성 테스트는 비교를 수행할 때 중요합니다. 두 연산자 모두 동등성을 평가하지만 기본 원칙은 다릅니다.
"is" 테스트:
"is" 연산자는 두 변수가 동일한 객체를 참조하는지 확인합니다. 기억 속에. 이는 두 변수가 컴퓨터 RAM의 정확히 동일한 위치를 가리키는지 평가한다는 의미입니다.
"==" 테스트:
"==" 연산자, 반면에 두 개체의 값을 비교합니다. 변수에 의해 저장된 값이 동일한지 확인합니다.
목록에 적용:
문자열 및 정수와 같은 불변 객체의 경우 "is" 및 "== " 같은 결과를 반환합니다. 그러나 목록과 같은 변경 가능한 객체의 경우 동작이 다릅니다. 다음 예를 고려하십시오.
L = [] L.append(1) if L == [1]: # True if L is [1]: # False
이 예에서 "==" 테스트는 목록 L과 [1]의 값이 동일하기 때문에 True를 반환합니다. 그러나 "is" 테스트는 두 변수가 메모리의 동일한 개체를 참조하지 않기 때문에 False를 반환합니다. L은 원본 목록에 대한 참조이고 [1]은 새로 생성된 목록 개체이기 때문입니다.
큰 개체:
목록과 같은 큰 개체의 경우 "is"는 두 변수가 정확히 동일한 객체를 가리키는 경우에만 True를 반환합니다. 예를 들어:
a = [1, 2, 3] b = a if b is a: # True b[:] = [4, 5, 6] if b is a: # False
캐싱 고려 사항:
Python이 작은 정수 개체와 문자열 리터럴을 캐시한다는 점은 주목할 가치가 있습니다. 결과적으로 어떤 경우에는 "==" 및 "is"가 동일한 결과를 반환할 수 있습니다. 그러나 이는 구현 세부 사항이므로 의존해서는 안 됩니다.
위 내용은 평등 테스트를 위한 Python의 '==' 및 'is' 연산자의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!