백엔드 개발 · 기초
Python의 mutable과 immutable 객체의 차이점을 설명해주세요.
힌트 · 리스트 vs 튜플, 딕셔너리 vs frozenset을 비교해보세요.
가변불변메모리 주소객체수정
모범답안
Python에서 mutable 객체와 immutable 객체의 가장 큰 차이점은 객체가 생성된 후 값을 변경할 수 있는지 여부입니다.
Mutable 객체는 값을 변경할 수 있습니다. 예를 들어 리스트(list)나 딕셔너리(dictionary)가 있습니다. 리스트에 요소를 추가하거나 딕셔너리의 값을 변경해도 객체의 메모리 주소는 바뀌지 않습니다.
반면, immutable 객체는 값을 변경할 수 없습니다. 튜플(tuple), 문자열(string), 숫자(int, float) 등이 있습니다. immutable 객체의 값을 변경하려고 하면, 기존 객체를 수정하는 것이 아니라 새로운 객체를 생성합니다. 따라서 메모리 주소가 변경됩니다.
이러한 차이점은 함수 인자로 객체를 전달할 때 중요한 영향을 미칩니다. mutable 객체를 함수 내에서 변경하면 원본 객체도 변경되지만, immutable 객체는 함수 내에서 변경해도 원본 객체는 변하지 않습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.