is는 id()를 이용해 비교하는 함수다. 즉 메모리 주소를 통해 비교를 한다.
None의 경우 null로서 값 자체가 정의되어 있지 않으므로 ==로 비교가 불가능하고 is를 이용해 비교해야한다.
is와 == 의 차이 예
a = [1,2,3]
a == a // True
a == list(a) //True
a is a // True
a is list(a) // False
마지막 줄 list(a)를 하게되면 별도의 객체로 복사가 되고 다른 ID를 가지게 된다. 따라서 False가 출력되는 것이다.
'IT > Python3' 카테고리의 다른 글
딕셔너리 (0) | 2020.09.19 |
---|---|
리스트 (1) | 2020.09.19 |
파이썬과 C++ 참조 비교 (0) | 2020.09.19 |
파이썬과 C++ 참조 비교 (0) | 2020.09.19 |
백준 2577번(파이썬) 리스트 0으로 초기화 (0) | 2019.08.27 |