PYTHON
파이썬 등가성과 동일성
SomeWhere_42
2023. 8. 26. 16:30
파이썬에서는 객체의 동일성과 등가성을 구분해서 처리합니다. 이 두 가지 개념은 다음과 같이 정의됩니다.
동일성 (Identity):
두 객체가 메모리 상에서 동일한 위치에 있는지를 나타내는 것을 말한다.
is 연산자를 사용하여 검사한다.
예: a is b 는 a와 b가 동일한 객체를 참조하고 있으면 True를 반환한다.
등가성(Equality):
두 객체의 내용이나 값이 같은지를 검사하는 것을 말한다.
'==' 연산자를 사용하여 검사한다.
예: 'a==b'는 'a'와 'b'의 값이 같으면 'True'를 반환한다.
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a is b) # False - a와 b는 서로 다른 메모리 위치에 있기 때문입니다.
print(a == b) # True - a와 b의 내용(값)이 같기 때문입니다.
print(a is c) # True - c는 a와 동일한 객체를 참조하기 때문입니다.
print(a == c) # True - a와 c는 동일한 객체이므로 내용도 당연히 같습니다.