Python의 동일성 vs 동등성
Python의 동일성(is
)과 동등성(==
) 차이점 정리
동일성 vs 동등성¶
Python에서 값을 비교하는 방법은 is
와 ==
두 가지가 있다.
is
: 동일성(Identity) 비교- 객체가 할당된 메모리 공간(id)이 동일한지 비교
==
: 동등성(Equality) 비교- 값이 같은지 비교
아래와 같은 두 객체를 예시로 들어보면,
위와 같은 결과가 나온다.
두 객체의 id를 확인해보면 아래와 같이 다르게 나오는 것을 확인할 수 있다.
활용¶
==
연산 보다는 메모리의 주소를 참조하는 is
연산을 사용하는게 조금 더 빠르기 때문에 메모리 주소가 고정된 Singleton 객체와 대조하는 경우 is
연산을 사용하는 것이 더 좋다.
PEP에서도 아래와 같이 None
과 같은 Singleton 객체와 대조하는 경우에는 is
또는 is not
을 사용하도록 권장하고 있다.
Note
Comparisons to singletons like None should always be done with is
or is not
, never the equality operators.