더북(TheBook)

별명 배열을 참조하는 변수는 다른 데이터 타입의 객체를 참조하는 변수와 똑같은 방법으로 사용할 수 있지만, 변수를 사용하는 방법이 미치는 영향을 이해하는 것은 아주 중요하다. 먼저 ‘배열 변수명을 할당문의 왼쪽에 놓으면 어떻게 될까?’하는 질문이 생길 수 있다. 즉 x[]y[]가 배열일 때 x = y 문장을 실행하면 어떤 영향을 미칠까? 답은 파이썬에서 다른 데이터 타입을 사용하는 경우와 마찬가지로 간단하다. xy가 동일한 배열을 참조한다. 그러나 이것은 예상치 못한 결과를 발생시킨다. 일단 xy가 독립적인 두 개의 배열을 참조한다고 생각하기 쉬운데, 사실은 그렇지 않다. 예를 들어 다음의 할당문들을 실행한 후, 코드에서는 y[1]을 직접 언급하지 않지만 y[1]의 값도 .99가 된다.

x = [.30, .60, .10]
y = x
x[1] = .99

두 변수가 동일 객체를 참조하는 이런 상황을 별명(alias)이라고 하며 [그림 1.4.4]에서 잘 보여주고 있다. 이 책에서는 배열에 별명을 붙이는 것을 피한다. 프로그램에서 오류를 찾아내기 어려워지기 때문이다. 그러나 2장에서 설명하는 것처럼, 두 배열에 별명을 붙이는 것이 자연스러운 경우도 있다. 그러므로 아예 이 개념을 잘 익혀두는 편이 좋다.

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