파이썬 변수는 값이 담기는 컨테이너가 아니라 객체에 대한 정확한 이름 바인딩입니다. 이 구분은 뮤테이션, 함수 인자, 그리고 별칭을 이해하는 데 매우 중요합니다. 흔히 사용되는 "상자" 비유와 달리, 파이썬 이름은 단순히 메모리상에 독립적으로 존재하는 객체에 붙는 레이블입니다. 여러 이름이 복제 없이도 동일한 객체를 가리킬 수 있습니다. 할당은 새로운 바인딩을 생성하며, 이는 이름이 참조하는 객체를 효과적으로 변경합니다. 뮤테이션은 기존 이름이 가리키는 객체를 수정하며, 해당 객체를 참조하는 다른 모든 이름에 영향을 미칩니다. 리스트와 같은 변경 가능한 타입에 대한 증강 할당 또한 객체를 제자리에서 뮤테이트합니다. 그러나 정수와 같은 변경 불가능한 타입에 대한 증강 할당은 이름을 새로운 객체에 다시 바인딩합니다. 이러한 동작은 데이터가 함수로 전달되고 함수에 의해 수정되는 방식에 상당한 영향을 미칩니다. 함수 내에서 새로운 객체를 생성하는 것과 기존 객체를 뮤테이트하는 것의 차이는 원본 변수에 대해 다른 결과를 초래합니다. 이 모델을 이해하는 것은 특히 기본 함수 인자와 같은 복잡한 시나리오에서 코드의 동작을 정확하게 예측하는 데 필수적입니다. 기본 인자 []는 정의 시 단일 리스트 객체를 생성하며, 이는 호출 간에 뮤테이트됩니다. 이 정신 모델을 정확하게 적용하기 위해 코드 추적 연습을 하는 것이 권장됩니다.
[]는 정의 시 단일 리스트 객체를 생성하며, 이는 호출 간에 뮤테이트됩니다. 이 정신 모델을 정확하게 적용하기 위해 코드 추적 연습을 하는 것이 권장됩니다.