본문으로 건너뛰기
실습하기

두 객체가 동일한지 확인하는 is 연산자

파이썬에서는 모든 것이 객체(object)입니다.

객체는 데이터와 이 데이터와 관련된 동작(메서드, Method)을 포함하는 모든 것을 의미합니다.

is 연산자는 두 객체가 메모리 상에서 같은 위치에 있는 동일한 객체인지를 검사합니다.

컴퓨터의 메모리(Memory)는 데이터를 저장하는 공간으로, 프로그램이 실행되는 동안 데이터를 임시로 저장합니다. 변수로 정의된 값은 메모리에 저장되며, 파이썬은 변수의 메모리 주소를 참조하여 해당 값을 가져옵니다.


비교하는 대상이 동일한 객체인지를 확인하는 is 연산자는 == 연산자와 다릅니다.

== 연산자는 두 객체의 이 같은지를 비교하는 반면, is 연산자는 두 객체가 동일한 객체인지를 비교합니다.

예를 들어, ab가 동일한 객체인지를 확인하려면 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는 서로 다른 객체(메모리 주소가 다름)

위 예시에서 변수 ab는 동일한 값을 갖지만 서로 다른 변수이므로, 값을 저장한 메모리 주소가 다릅니다.

따라서 a is bFalse를 반환합니다.

반면 == 연산자는 두 객체의 값이 같은지를 비교하므로, 동일한 [1, 2, 3] 값을 갖는 aba == b에서 True를 반환합니다.

이렇게 두 대상의 값이 같더라도 ==True를 반환하지만, isFalse를 반환할 수 있습니다.

간단히 값을 비교할 때는 ==를 사용하고, 두 객체가 완전히 동일한지 엄격히 확인할 때는 is를 사용하는 것이 좋습니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!