본문 바로가기
카테고리 없음

mutable immutable 비교

by 알 수 없는 사용자 2022. 4. 3.

https://dpdpwl.tistory.com/82

 

[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,~~]가 되든 주소는 동일하다.


 

 

 

 

댓글