call by object reference {python}


함수 인자로 집어넣은 인수는 값이 복사되지 않는다는 것은 이미 알고 있는 사실이다. 그렇다면 함수 안에서 인자의 값을 변경하면 오리지널 값도 변경되는 걸까? -> 그럴때도 있고, 아닐때도 있다.

불변객체일 경우 (int, str, ...) 누누히 말해오는 거지만 누적 연산자 따위로 값을 수정하는 것이 아니라 레퍼런스만 바꾼다고 했다. 따라서 함수 안에서 인자의 값을 변경하는 행위는 마찬가지로 레퍼런스를 바꾸는 행위가 되기 때문에 원본 객체에는 영향을 주지 않는다.

가변객체일 경우는 뭐 그럼 영향을 주겠지.