[Python] Call by Assignment

1. Call by Assignment(Call by Object Reference)란 ? 

python은 함수에 파라미터를 전달할 때 Call by Assignment 방식으로 전달된다. 

이는 파라미터로 전달받는 객체에 따라 객체의 참조 방식이 결정된다는 의미이다. 


2. 우선 파이썬의 객체(object)에 대하여 

 파이썬은 모든 것이 객체(Object)이다. 
a = 10

 

파이썬에서는 a 에 10이 할당되는 것이 아닌, a 가 10이라는 상수 객체를 참조하는 것이다.


3. mutable vs immutable 

python에서는 모든 것이 객체이며 2가지 종류로 나뉜다. 

  • immutable : 값 변경이 불가능한 객체
    • int, float , str ,tuple , bool ..등  
  • mutable : 값 변경이 가능한 객체 
    • list , dictionary , set.. 등 

4. python에서의 Call by Assignment

immutable 객체가 함수의 인자로 전달 될 경우

값이 복사되어 전달되는 Call By Value 처럼 동작한다 (원본값에 영향 X) 

 

mutable 객체가 함수의 인자로 전달 될 경우

값이 주소가 전달되는 Call By Reference 처럼 동작한다 (원본값에 영향 O)  

→  메모리 주소에 저장된 값에 접근하므로 원래 변수에 저장된 값도 같이 변경된다. 


✍️ 참고자료 

https://devbruce.github.io/python/py-42-call+by+assignment/

 

[Python] Call By Assignment

 

devbruce.github.io

 

https://sylagape1231.tistory.com/45

 

[Python] Call by Assignment 이해하기

Python은 함수에 인수를 전달할 때 Call by Assignment 방식으로 전달된다. 이 말은 무슨 의미일까? mutable VS immutable 우선 mutable과 immutable의 개념부터 짚고 넘어가면, python에선 모든 것이 객체이며 총 2가

sylagape1231.tistory.com