코드 한 줄이 이름과 객체 중 무엇을 바꾸는지 따라간다
프로그램을 고르고 한 줄씩 실행한다. 초록 테두리 객체는 방금 줄에서 상태가 바뀌거나 새로 만들어진 객체다.
실행 코드
변수 이름과 참조
객체
관찰값
같은 시작에서 세 번째 줄이 결과를 가른다
세 코드 모두 a = [1, 2]에서 시작한다.
a → A [1, 2, 3]
b → A [1, 2, 3]
같은 객체가 바뀌어 두 이름 모두에서 변화가 보인다.
a → A [1, 2]
b → B [7, 8]
b의 참조만 새 객체로 바뀌고 A는 그대로다.
a → A [1, 2]
b → B [1, 2, 3]
list(a)가 새 객체를 만들었으므로 b의 변경이 a에 보이지 않는다.
메서드 호출은 객체를 바꿀 수 있고 대입문은 변수 이름이 가리키는 객체를 정한다.