트레이스 예: 변숫값 증가 트레이스 개념을 제대로 이해했는지 확인하기 위해 17
값을 가진 객체에 변수 i를 바인딩하고, 이 값을 하나 증가시키는 다음 코드를 예로 살펴보자.
i = 17 i = i + 1
앞에서 설명했듯이 두 번째 문장은 수학의 등식에서는 말이 안 되는 문장이지만, 파이썬으로 프로그래밍할 때는 이런 문장을 아주 흔히 볼 수 있다. 이 두 문장은 구체적으로 파이썬이 다음과 같이 작동하도록 명령한다.

▲ 그림 1.2.4 변숫값 증가 트레이스
• 값이 17
인 int
객체를 생성해 이 객체에 변수 i
를 바인딩한다.
• 표현식 i + 1
을 평가해 값이 18
인 int
객체를 생성한다.
• 생성된 객체에 변수 i
를 바인딩한다.
파이썬이 각 문장을 실행한 후의 결과를 살펴보려면 [그림 1.2.4]를 참조하라.
이 코드는 아주 간단하지만 객체를 생성하는 과정의 두 가지 측면을 생각하게 해준다. 첫째, i = i + 1
문장은 어떤 객체의 값도 변경하지 않는다. 다만 원하는 값을 가진 객체를 새로 생성하고 변수 i를 새로운 객체에 바인딩할 뿐이다. 둘째, i = i + 1
문장을 실행한 후에는 17
과 1
값을 가진 객체에 바인딩된 변수가 없다. 메모리 자원을 관리하는 책임은 파이썬이 지고 있다. 파이썬은 더 이상 접근할 수 없는 객체를 발견하면 그 객체를 저장하기 위해 사용했던 메모리를 자동으로 회수한다.