>백엔드 개발 >파이썬 튜토리얼 >Python에서 `==`와 `is`의 차이점은 무엇입니까?

Python에서 `==`와 `is`의 차이점은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-24 22:41:11601검색

What's the Difference Between `==` and `is` in Python?

Python에서 "==''와 "is''의 차이점 이해

Python에서 값을 비교할 때 두 가지 공통점이 있습니다. 연산자: "==" 및 "is" 종종 이러한 연산자는 동일한 동등성 검사를 수행하는 것처럼 보일 수 있습니다. 그러나 평가하는 측면에서 둘 사이에는 미묘한 차이가 있습니다.

"==" 및 "is'' 연산자

  • "==": 값이 동일한지 테스트합니다. 즉, 두 변수가 동일한 값을 포함하는 개체를 참조하는지 평가합니다. value.
  • "is": 객체 동일성을 테스트합니다. 이는 두 변수가 해당 값에 관계없이 메모리에서 동일한 객체를 참조하는지 확인합니다.

가치 평등과 객체 동일성

가치 같음:

  • "=="를 사용할 때 Python은 변수가 참조하는 개체의 값을 비교합니다.
  • 값이 같으면 결과는 True입니다. , 객체가 다른 인스턴스인지 여부에 관계없이 memory.

예:

a = 10
b = 10

if a == b:
    print("Yay!")  # Will print "Yay!" as 10 == 10

객체 ID:

  • "is"를 사용할 때 Python은 객체를 비교합니다. 변수의 식별자입니다.
  • 변수가 메모리의 동일한 개체를 참조하는 경우 결과는 다음과 같습니다. 값이 다르더라도 그렇습니다.

예:

a = [1, 2, 3]
b = a

if a is b:
    print("Yay!")  # Will print "Yay!" as a and b point to the same list

규칙 예외

  • 정수: Python은 성능을 위해 작은 정수 개체(최대 256개)를 캐시합니다. 이유. 이는 "is"가 이 범위 내의 다른 정수 변수에 대해서도 True를 반환할 수 있음을 의미합니다:
a = 100
b = 100

if a is b:
    print("Yay!")  # Will print "Yay!" due to integer caching
  • 문자열: 마찬가지로 Python은 일반적인 문자열 리터럴을 캐시합니다. 그러나 이는 변수에서 생성된 문자열에는 적용되지 않습니다.
a = "a"
b = "a"

if a is b:
    print("Yay!")  # Will print "Yay!" as string literals are cached

b = "aa"

if a is b:
    print("Nay!")  # Will not print as b is a different object

요약하면 "=="는 값 동일성을 테스트하는 반면 "is"는 객체 동일성을 테스트합니다. 정확하고 효율적인 Python 코드를 작성하려면 이러한 차이점을 이해하는 것이 필수적입니다.

위 내용은 Python에서 `==`와 `is`의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.