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/
https://sylagape1231.tistory.com/45
'STUDY > Python' 카테고리의 다른 글
[python] 리스트에서 원하는 위치 요소 제거 (0) | 2024.04.02 |
---|---|
[Python] File I/O (절대경로, 상대경로) (0) | 2024.04.01 |
[Python] sort 와 sorted의 차이 (0) | 2024.03.29 |
[Python] 리스트에서 n번이상 연속으로 나타나는 숫자 찾기 (0) | 2024.03.28 |
[python] 클래스와 상속 (0) | 2024.03.10 |