is와 ==의 차이
== (Equality)
- 객체의 값이 동일한지 확인
- 객체의 내용이 동일할 경우 T, 상이할 경우 F
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True, because the contents are the same
is (Identity)
- 객체의 메모리 주소가 동일한지 확인 (값도 동일한지 확인)
- 객체 간의 메모리 주소값이 일치할 경우 T, 상이할 경우 F
a = [1, 2, 3]
b = a
print(a is b) # True, because a and b reference the same object
정리
- ==는 값이 갖는 값의 동일성 확인, is는 객페가 정확하게 동일한 객체인지 확인
- ==는 메모리 주소가 달라도 값이 동일하면 True, is 는 메모리 주소가 같아야 True를 반환