이 예시처럼 단순히 변수를 선언하더라도 어느 영역에서 선언했느냐에 따라 사용할 수 있는 범위가 다릅니다. 이렇게 변수를 선언할 때 그 변수가 쓰일 수 있는 영역을 유효 범위(scope)라고 합니다. 다음과 같이 add 함수 내부라는 한정된 영역에서 사용하려고 만든 변수를 지역 변수(local variable)라고 하며, 지역(local)이라는 말에서 유추할 수 있듯이 특정 영역(변수를 선언한 함수 내부)에서만 사용할 수 있습니다. 따라서 return을 사용하지 않고서는 함수 외부 영역에서는 지역 변수 result가 어떤 값인지 알지 못하는 것입니다.
> def add(param1, param2):
> result = param1 + param2
>
> add(1, 3)
> print(result)
(...)
NameError: name 'result' is not defined