728x90
반응형

* 본 포스팅은 주피터 노트북에서 실행하였다.

 

객체의 동일성(identity)에 대해 알아보자

 

list_a = [10, 20, 30]
list_b = [10, 20, 30]
if list_a is list_b:
    print('list_a is list_b')
else :
    print('list_a is not list_b')
    

list_a와 list_b가 다르다고 한다. 왜일까?

id(list_a) #2454901262600

id(list_b) #2454901262088

id()를 이용하여 각각의 id값을 확인했는데 다름을 확인할 수 있었다...

 

두 인스턴스의 속성값 즉 인스턴스 변수값이 서로 일치하는지 확인하기 위해서는 == 사용

파이썬 == -> 자바 equals
자바 == -> 파이썬 is

 

위를 참고하여 ==을 이용하니 같다고 떴다.

if list_a == list_b:
    print('list_a == list_b')
else :
    print('list_a != list_b')

 

a = 'ABC' #문자열 객체를 참조하는 변수 a
b = 'ABC' #문자열 객체를 참조하는 변수 b
if a is b:
    print('a is b')
else :
    print('a is not b')

 

id(a) # 2454831867584

id(b) # 2454831867584

문자열 객체는 id의 값이 같음을 확인할 수 있다.

 

문자열이 동일하게 결과가 나오는 것은 동일한 메모리에 있다는 것을 의미하고 문자열을 변경하지 못한다. (immutable)

728x90
반응형

+ Recent posts