두 객체가 동일한지 확인하는 is 연산자
파이썬에서는 모든 것이 객체(object)
입니다.
객체는 데이터
와 이 데이터와 관련된 동작
(메서드, Method)을 포함하는 모든 것을 의미합니다.
is
연산자는 두 객체가 메모리 상에서 같은 위치에 있는 동일한 객체인지를 검사합니다.
컴퓨터의
메모리(Memory)
는 데이터를 저장하는 공간으로, 프로그램이 실행되는 동안 데이터를 임시로 저장합니다. 변수로 정의된 값은 메모리에 저장되며, 파이썬은 변수의 메모리 주소를 참조하여 해당 값을 가져옵니다.
비교하는 대상이 동일한 객체인지를 확인하는 is
연산자는 ==
연산자와 다릅니다.
==
연산자는 두 객체의 값
이 같은지를 비교하는 반면, is
연산자는 두 객체가 동일한 객체
인지를 비교합니다.
예를 들어, a
와 b
가 동일한 객체인지를 확인하려면 a is b
를 사용합니다.
is 연산자 사용 예시
a = [1, 2, 3]
b = [1, 2, 3]
print("a == b:", a == b) # True, a와 b의 값이 같음
print("a is b:", a is b) # False, a와 b는 서로 다른 객체(메모리 주소가 다름)
위 예시에서 변수 a
와 b
는 동일한 값을 갖지만 서로 다른 변수이므로, 값을 저장한 메모리 주소가 다릅니다.
따라서 a is b
는 False
를 반환합니다.
반면 ==
연산자는 두 객체의 값이 같은지를 비교하므로, 동일한 [1, 2, 3]
값을 갖는 a
와 b
는 a == b
에서 True
를 반환합니다.
이렇게 두 대상의 값이 같더라도 ==
는 True
를 반환하지만, is
는 False
를 반환할 수 있습니다.
간단히 값을 비교할 때는 ==
를 사용하고, 두 객체가 완전히 동일한지 엄격히 확인할 때는 is
를 사용하는 것이 좋습니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!