Python/문법
파이썬(python) 값 전달, 참조 전달
snowman95
2021. 5. 9. 13:30
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] 그대로
반응형