[Python]파이썬 mutable과 immutable
파이썬에는 변경가능한 객체(mutable) 과 변경불가능한 객체(immutable) 이 있습니다. 변경가능한 객체에는 리스트(list)와 딕셔너리(dict) 이 있습니다. 변경불가능한 객체에는 일반적인 자료형 int, str
dpdpwl.tistory.com
참고
결론
a= 3
b= 'b'
c= (1,2)
이런건 Immutable 변경불가능 (불변)
d= [1,2]
e= {1:'a',2:'b'}
이런건 mutable 변경가능 (가변)
이유
a = 3
a += 1
이건 변경한게 아니라 다시 '정의'하는것 // ID 값을 확인해보면 달라져 있음.
전문용어로는 Call by value
a는 3이다. a에 1을 더해서 덮어쓴거라 주소가 다르다.
d.append[2]=3
[1,2] --> [1,2,3] 이건 변경한것 '수정'한거라 // ID 값을 확인해보면 동일하다.
전문용어로는 Call by reference
[1,2] 라는 바구니의 주소를 가진 d 이기때문에 [1,2,3]이든 [1,2,3,4,5,6,~~]가 되든 주소는 동일하다.
댓글