is
는 두 변수가 같은 객체를 가리키는지 확인한다. (참조 동일성 확인)
==
는 값이 같은지 확인한다. (값 동일성 확인)
p = [1]
q = [1]
p is q # 같은 객체가 아니라서 False
p == q # 내부 값이 같으므로 True
값이 None
인지 확인할 때 is
를 사용하는게 낫다.
- 우선,
None
은 싱글턴 객체이므로is
사용이 가능하다.
p = None
q = None
p is q # 둘 다 "None"을 가리키므로 `True`
- 참조만 비교하므로
==
보다 50% 정도 빠르다.