함수는 호출되기 전까지 불이 꺼져 내부가 보이지 않는다고 생각하면 됩니다. 함수 외부에서는 함수가 있다고는 인식하지만, 함수 내부가 어떻게 생겼는지는 알 수 없습니다. 함수가 호출되면 그제서야 불을 켜고 내부를 볼 수 있게 되죠. 함수가 종료되면 불이 다시 꺼집니다. 따라서 함수 내부에 정의된 변수는 호출되기 전까지 함수 외부에서는 보이지 않습니다. 코드를 보면 name 변수는 hi() 함수 내부에 정의되어 있습니다. 이렇게 함수 내부에 정의된 변수는 함수가 호출될 때만 사용할 수 있습니다. 코드의 실행 과정을 정리하면 다음과 같습니다.
▼ 표 13-1 실행 과정
실행 순서 |
실행되는 명령어 |
설명 |
1 |
def hi(): ➡︎ print('자기소개를 시작합니다.') hi() print(name, '님 안녕하세요.') |
hi() 함수 내부가 보이지 않음 |
2 |
def hi(): print('자기소개를 시작합니다.') ➡︎ hi() print(name, '님 안녕하세요.') |
hi() 함수 호출 |
3 |
def hi(): print('자기소개를 시작합니다.') ➡︎ hi() print(name, '님 안녕하세요.') |
hi() 함수 내부가 보이고, hi() 함수의 첫 번째 명령어 실행 |
4 |
def hi(): print('자기소개를 시작합니다.') ➡︎ hi() print(name, '님 안녕하세요.') |
hi() 함수의 두 번째 명령어 실행 |
5 |
def hi(): print('자기소개를 시작합니다.') ➡︎ hi() print(name, '님 안녕하세요.') |
hi() 함수의 의 세 번째 명령어 실행 hi() 함수 종료 |
6 |
def hi(): print('자기소개를 시작합니다.') hi() ➡︎ print(name, '님 안녕하세요.') |
hi() 함수가 종료되며 내부가 다시 보이지 않음 다음 명령어 실행 |