파이썬 코드를 쓰다보면, 이런 의문이 생길 때가 있습니다.
파이썬 함수에 변수를 전달하고 함수 내에서 변수를 조작했는데 의도와 다르게 원본 값이 바뀌거나, 반대로 바뀌지 않는 겁니다.
- 어 뭐야, 이게 왜 바뀌었지?
- 엇 이건 뭐야, 왜 안바뀌지?
파이썬에서는 함수에 전달되는 immutable object(int, float, str, tuple)와 mutable object(list, dict, set)에 따라서 다르게 동작하는데요, 이것과 함께 값, 참조, 주소에 의한 호출의 차이라는게 뭔지 정리한 글을 공유합니다.