함수는 함수 내부의 세부적인 기능을 외부에는 숨깁니다. 그래프를 그리기 위해 plt.plot()을 사용하지만 그 내부가 어떤 구조인지 알지 못하는 것처럼 말이죠. plt.plot()으로 그래프를 그릴 데이터와 옵션을 넣을 뿐입니다. 사용자 정의 함수도 마찬가지입니다. 함수 내부에서 사용하는 변수를 함수 외부에서 알 수 없습니다. 이처럼 프로그램의 특정 지역(여기서는 함수 내부)에서만 사용하는 변수를 지역변수라고 합니다. 지역변수는 정해진 지역을 벗어나면 사용할 수 없습니다.
앞의 코드에서 name은 지역변수입니다. name에 저장된 값을 함수 외부에서 사용하고 싶다면 다음과 같이 return으로 반환해야 합니다.
def hi():
name = input('이름은? ')
print('hi!')
print('My name is', name, '!')
return name
print('자기소개를 시작합니다.')
person = hi()
print(person, '님 안녕하세요.')
실행결과
자기소개를 시작합니다.
이름은? 제임스
hi!
My name is 제임스 !
제임스 님 안녕하세요.