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로 봐도 반영됨

← python 3.14으로