2023-07-23 14:21:29

파이썬에서 어떤 것이 서로 같은 지를 확인할 때 사용할 수 있는 연산자로는 is와 ==이 있습니다. 엄밀하게 따지면 이 둘은 다릅니다.

 

== 는 단순히 값이 같은지를 체크한다면, is는 메모리 상 같은 주소에 있는 값을 바라보고 있는 지를 체크합니다. 

 

예시를 통해 살펴보겠습니다. 

 

== 연산자 vs is 연산자

 

 

name1 변수에 "심교훈"이라는 문자열을 담았고, name2 변수에도 "심교훈"이라는 문자열을 바인딩 했습니다. == 연산자로 이 둘을 비교해보니 True를 반환해줬습니다. 반면 is 연산자로 비교했을 때는 False를 반환해줍니다. 왜 그런지 이유를 살펴보겠습니다. id 함수로 두 변수에 바인딩되어 있는 값의 주소를 확인해보면 서로 다릅니다. 그렇기 때문에 is 연산자로는 False가 반환된 것입니다. 

 

 

이번에는 name1에 "심교훈"이라는 값을 바인딩 하고, name2 변수에는 name1 변수를 바인딩해주겠습니다. 그 다음에 ==, is 연산자로 비교해보겠습니다.

 

 

이번에는 모두 True가 반환되었습니다. id 함수로 주소를 확인해보면 같은 것을 알 수 있습니다.

 

 

즉, 같은 위치에 있는 값을 name1이라는 변수와 name2라는 변수가 바라보고 있는 것입니다. 

 

 

관련 글

- [python] 얕은 복사와 깊은 복사, 이거 모르면 큰일남