728x90
반응형
Call by value (값에 의한 호출)
함수의 인자로 실제 변수를 넘기지 않고 변수의 값(객체)를 복사하여 인자로 넘김
Immutable (불변) 객체가 이에 해당된다.
def func(name):
name = 1
→ a와 다른 메모리에 존재하는 name이라는 새 변수임
a = 1
func(a)
Call by Reference (참조에 의한 호출)
공식적으론 Call by Assignment 라고 함.
함수의 인자로 실제 변수를 넘기고, 변수의 값(객체)를 변경시킬 수 있음.
Mutable (가변) 객체가 이에 해당된다.
def func(name):
name[0]=4
a=[1,2,3]
func(a)
결과 : a=[4,2,3]
※ 그러나 가변객체여도 인자로 받은 객체를 다른 객체로 치환해버리면 원본은 변경되지 않는다.
def func(name):
name =[4,5,6]
a=[1,2,3]
func(a)
결과 : a=[1,2,3] 그대로
반응형
'Python > 문법' 카테고리의 다른 글
파이썬 가변 인자 *, * (2) | 2022.09.25 |
---|---|
파이썬(python) 과 C언어의 변수 저장 방식 차이 (1) | 2021.05.09 |
파이썬(python) 리스트 잡기술 (0) | 2021.05.09 |
파이썬(python) 문자열 중복제거 (unique) (2) | 2021.05.01 |
파이썬 (python) 자료형 (0) | 2021.04.23 |