라벨이 immutable인 게시물 표시

[python] mutable과 immutable 차이점

이미지
Mutable과 Immutable 차이점 파이썬은 Call by Assignment로 모든 것이 객체이며, 속성으로 Mutable과 Immutable로 구분합니다. Mutable 이란? 객체를 생성한 뒤, 객체의 값을 수정할 수 있습니다.  값을 수정한다면 변수가 원래 가르키던 주소에 값을 수정합니다. 대표적으로 list, set, dict (아래 표 참고) Immutable 이란? 객체를 생성한 뒤, 객체의 값을 수정할 수 없습니다.  값을 수정한다면 변수가 가르키는 주소에 값을 수정하는 게 아닌,  새로운 주소에 새로운 객체를 가르킵니다.  (수정X, 새롭게 할당) 대표적으로 int, float, tuple, str (아래 표 참고) Mutable과 Immutable 비교 1. Mutable - list x = [ 1 , 2 , 3 ] y = x print ( f"x id: { id (x) } , y id: { id (y) } " ) # x id: 140542819770848, y id: 140542819770848 (주소 값 같음) print ( f"x: { x } , y: { y } " ) # x: [1, 2, 3], y: [1, 2, 3] x += [ 4 , 5 , 6 ] print ( f"x id: { id (x) } , y id: { id (y) } " ) # x id: 140542819770848, y id: 140542819770848 (주소 값 같음) print ( f"x: { x } , y: { y } " ) # x: [1, 2, 3, 4, 5, 6], y: [1, 2, 3, 4, 5, 6] y=x라는 구문으로 x, y는 동일한 주소(140542819770848)의 [1, 2, 3]을 가르키고 있습니다. (id 값이 동일) x에 [4, 5, 6]을 추가하면 140542819770848 주소에 있는 값이 변경 되기 때문에, y 값을