Python에서 '== None'보다 'is None'이 선호되는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-12 20:29:01
원래의
157명이 탐색했습니다.

Why is

Python 없음 비교 이해: "is" 대 ==

Python 개발자는 변수를 비교할 때 "is" 또는 ==를 사용할지 묻는 질문에 자주 직면합니다. 없음. 두 옵션 모두 유효한 구문이 되지만 선호되는 접근 방식은 의도한 비교에 따라 다릅니다.

객체 동일성과 동등성

주요 차이점은 다음의 특성에 있습니다. 비교: 객체 동일성 또는 동일성.

  • 객체 동일성(is): 두 변수가 메모리에서 정확히 동일한 객체를 참조하는지 비교합니다.
  • 동등(==): 두 개체의 값입니다.

None의 경우 Python에는 해당 개체가 하나만 있습니다. 따라서 my_var is None은 my_var이 동일한 None 객체를 참조하는지 확인합니다.

Why is None Preferred?

둘 다 None이고 == None인 반면 유효한 구문인 is None은 더 명시적이고 오류가 발생할 가능성이 적은 것으로 간주됩니다.

다음 상황을 고려하세요.

class Negator(object):
    def __eq__(self, other):
        return not other

thing = Negator()
print(thing == None)  # True
print(thing is None)  # False
로그인 후 복사

이 예에서 Negator 클래스는 == 연산자를 재정의하여 항상 인수의 반대를 반환합니다. 결과적으로 thing == None은 True로 평가되어 값이 동일함을 나타냅니다. 그러나 thing is None은 False로 올바르게 평가되어 thing과 None이 동일한 객체가 아님을 나타냅니다.

결론

다음과의 비교를 포함하여 객체 ID를 확인합니다. 없음이 선호되는 접근 방식입니다. 이는 명확성을 보장하고 재정의된 같음 연산자로 인해 발생할 수 있는 잠재적인 모호성을 방지합니다. 는 신원을 확인하는 반면 ==는 동등성을 확인한다는 점을 기억하세요.

위 내용은 Python에서 '== None'보다 'is None'이 선호되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿