더북(TheBook)

13.1.3 활동범위가 다른 지역변수와 전역변수

지금까지 사용자 정의 함수를 정의하고 호출하는 방법을 배웠습니다. 이번에는 사용자 정의 함수를 사용할 때 오류가 가장 많이 발생하는 부분인 지역변수와 전역변수의 개념을 다뤄 보겠습니다.

 

특정 지역에서만 사용하는 지역변수

다음 코드를 실행해 봅시다.

def hi():
    name = input('이름은? ')
    print('hi!')
    print('My name is', name, '!')

print('자기소개를 시작합니다.')
hi()
print(name, '님 안녕하세요.')
실행결과
자기소개를 시작합니다.
이름은? 제임스
hi!
My name is 제임스 !
---------------------------------------------------------------------------
----> 8 print(name, '님 안녕하세요.')
NameError: name 'name' is not defined

name 변수가 정의되지 않았다며 NameError 오류가 발생합니다. 분명 코드에 name 변수가 있는데 왜 정의되지 않았다고 나올까요?

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