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
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.