더북(TheBook)

2.9.3 유효 범위

앞서 배운 반환하기가 필요했던 이유는 함수를 정의한 영역과 함수를 호출하는 영역이 구분되어 있기 때문이었습니다. 그렇지 않고 영역 구분이 없었다면 return 없이도 변수를 공유할 수 있었을 것입니다.

앞서 보았던 예제를 다시 한 번 살펴보겠습니다. 다음 코드에서 에러가 발생하는 이유는 함수 내부와 외부 영역이 달라 함수 안에서 정의한 result 변수를 함수 외부에서 사용할 수 없기 때문입니다.

> def add(param1, param2):
>     print(param1 + param2)
>     result = param1 + param2

> add(1, 3)
> print(result)
4
NameError: name 'result' is not defined

그런데 반대로 함수 외부에서 선언한 result 변수를 함수 내부에서 접근하여 사용할 수 있습니다.

> result = 10
> def add(param1, param2):
>     print(param1 + param2 + result)
>
> add(1, 3) ------ 1+3+10=14
14
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.