더북(TheBook)

4.2.8 다중 값을 반환한다

파이썬은 함수에 변수를 전달하여 함수 내부에서 값을 변경한다고 해서 함수 외부에 있었던 기존 변수 값이 변경되지 않는다. 다음 예시를 살펴보자.

def double_me(n):
  n *= 2

a = 10
double_me(a)
print(a)     # a 값이 2배가 되지 않는다!

n에 새로운 값이 대입되면 기존 값과 연결이 끊어진다. 결국 n은 로컬 변수가 되며, 메모리의 다른 영역에 값을 저장하게 된다. 함수에 전달된 변수는 영향을 받지 않는다.

하지만 다음과 같이 값을 반환하는 것은 가능하다.

def double_me(n):
    return n * 2

a = 10
a = double_me(a)
print(a)

하나의 출력 매개변수로 하나의 값을 반환하는 것이다. 하지만 하나 이상의 값을 반환하고 싶다면 어떻게 해야 할까?

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.