https://docs.python.org/3/tutorial/classes.html#a-word-about-names-and-objects
하나의 객체에 여러 이름(변수)이 동시에 묶일 수 있고,
특히 가변 객체에서는 한쪽에서 바꾸면 다른 이름으로도 변경이 보이는 현상이다.
- 파이썬 변수는 “객체에 대한 이름”일 뿐이고, 대입은 이름을 객체에 바인딩한다.
- 불변 객체(숫자, 문자열, 튜플)는 값이 바뀌지 않아 별칭 문제가 거의 체감되지 않는다.
- 가변 객체(리스트, 딕트 등)는 별칭이 같은 객체를 가리키면 한쪽 수정이 다른 이름을 통해서도 그대로 보인다.
- 함수 인자 전달도 객체 참조만 건네므로(값 복사 아님) 함수가 가변 인자를 바꾸면 호출자 쪽에서도 바뀐 상태를 본다.
a = [1,2]
b = a
b.append(3)
print(a) #[1, 2, 3] b에서 수정했지만, a로 봐도 반영됨