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] 그대로

 

반응형