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 중국어 웹사이트의 기타 관련 기사를 참조하세요!