더북(TheBook)

이 예제의 두 번째 줄은 불변 타입인 문자열의 첫 항목 값을 바꾸려고 시도했기 때문에 제대로 동작하지 않는다. 결국 타입 에러(TypeError) 예외가 발생한다.

하지만 다음 코드는 잘 동작한다.

my_str = '안녕'
my_str = '안녕하세요'

이 문장은 각 줄마다 새로운 문자열 객체가 생성되고, 이름 my_str에 재대입되기 때문에 문제없이 잘 동작한다.

파이썬의 변수는 그저 객체를 호출하는 이름일 뿐이며, 같은 변수를 계속해서 재사용할 수 있다. 그렇기 때문에 마지막 줄의 코드가 문자열의 불변 성질을 위반하는 것처럼 보여도 실제로는 그렇지 않은 것이다. 그 어떤 문자열도 마지막 줄과 같은 방식으로 값이 수정되지는 않는다. 서로 다른 문자열 2개가 생성되는 것이며, 이름 my_str이 재사용된 것뿐이다.

앞서 살펴본 방법은 데이터 선언이 없는 파이썬에서 값을 대입하는 자연스러운 방법이며, 우리는 이렇게 선언한 이름을 원하는 만큼 재사용할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.