Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 'is not' 연산자 완벽 이해하기 – 동작 원리와 예제 코드

파이썬의 식별(Identity) 연산자란?

파이썬에서 isis not 연산자는 식별 연산자(identity operators)라고 불립니다. 파이썬 인터프리터는 컴퓨터 메모리에 존재하는 모든 객체에 고유한 식별 번호, 즉 id를 할당합니다. 식별 연산자는 두 객체의 id() 값이 서로 같은지를 비교하는 역할을 합니다.

그중 'is not' 연산자는 두 객체의 id() 값이 서로 다르면 True를 반환하고, 같으면 False를 반환합니다. 쉽게 말해, 두 변수가 메모리상에서 동일한 객체를 가리키고 있는지 아닌지를 판별하는 연산자입니다.

'is not' 연산자 동작 예제

아래 예제를 통해 'is not' 연산자가 실제로 어떻게 작동하는지 확인할 수 있습니다.

>>> a=10
>>> b=a
>>> id(a), id(b)
(490067904, 490067904)
>>> a is not b
False

위 코드에서 변수 ba에 할당된 객체 그 자체를 참조하므로, 두 객체의 id() 값이 동일합니다. 따라서 a is not b의 결과는 False가 됩니다.

반면, 두 변수가 서로 다른 객체를 참조하는 경우는 다음과 같습니다.

>>> a=10
>>> b=20
>>> id(a), id(b)
(490067904, 490068064)
>>> a is not b
True

이 경우 ab는 각각 다른 값을 가지며, 메모리에서 서로 다른 위치에 저장된 별개의 객체입니다. id() 값이 다르기 때문에 a is not bTrue를 반환합니다.

'is not'과 '!='의 차이점

주의할 점은 'is not' 연산자가 값의 동등성을 비교하는 != 연산자와 다르다는 것입니다. !=는 객체의 이 같은지 비교하지만, 'is not'은 두 이름이 메모리상의 동일한 객체를 가리키는지를 비교합니다. 일반적으로 값 비교에는 !=를, None 여부 확인 등 객체 자체의 비교에는 is not을 사용하는 것이 파이썬의 권장 스타일입니다.