>백엔드 개발 >파이썬 튜토리얼 >Python 없음 비교: 'is' 또는 '=='를 사용해야 합니까?

Python 없음 비교: 'is' 또는 '=='를 사용해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-13 16:38:021049검색

Python None Comparisons: Should You Use

Python 없음 비교: "is" 또는 ==를 사용해야 합니까?

Python에서는 변수를 비교할 때 경고가 나타날 수 있습니다. ==를 사용하면 없음, is를 사용하면 경고가 발생하지 않습니다. 두 구문 모두 유효하지만 일반적으로 my_var is None을 사용하는 것이 좋습니다.

None 검사에 "is"가 선호되는 이유는 무엇입니까?

is와 is의 주요 차이점 == 그들의 목적에 있습니다. ==는 동등성을 확인하고, is는 객체 동일성을 확인합니다. 변수를 None과 비교하는 경우, 변수가 단지 동등한 객체가 아니라 구체적으로 None 객체인지 확인하고 싶습니다.

None은 Python에서 고유한 객체입니다. 그 중 한 사례. my_var is None을 사용하면 my_var과 None이 동일한 개체인지 확인하는 것입니다. 이 검사는 my_var == None을 사용하는 것보다 더 구체적이고 신뢰할 수 있습니다.

동등성과 동일성

차이점을 설명하려면 사용자 정의 클래스 Negator를 고려하세요.

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

Negator 인스턴스를 생성하고 None과 비교하면 다음과 같습니다. get:

thing = Negator()
print(thing == None)  # True
print(thing is None)  # False

thing == None은 자신을 제외한 다른 값과 비교할 때 항상 True를 반환하도록 Negator 클래스가 eq 메서드를 재정의하기 때문에 True를 반환합니다. 그러나 두 객체가 동일한 객체가 아니기 때문에 thing is None은 False를 반환합니다.

결론

None 검사의 경우 일반적으로 my_var is None을 사용하는 것이 좋습니다. None 개체를 구체적으로 확인하고 있는지 확인하세요. ==는 동등성을 확인하려는 경우 사용할 수 있지만 비교 방법을 재정의하는 사용자 정의 클래스를 처리할 때는 신뢰할 수 없을 수 있다는 점을 명심하세요.

위 내용은 Python 없음 비교: 'is' 또는 '=='를 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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