오류가 발생합니다. 그리고 기존에는 오류를 표시하는 화살표가 하나였는데, 이번에는 2개고요. 첫 번째 화살표는 func1()에 있습니다. 함수 외부에서는 함수 내부를 볼 수 없기 때문에 첫 번째 화살표에서는 ‘오류 내용은 잘 모르겠지만 func1() 함수를 호출하는 부분에서 오류가 발생했다’고 알려 주기만 합니다. 두 번째 화살표는 호출된 func1() 함수의 어디에서 오류가 발생했는지를 구체적으로 알려 줍니다.
함수 정의가 가장 위에 있지만, 함수가 호출되기 전까지 실행되지 않습니다. 그래서 프로그램이 시작되면 가장 먼저 a, b = 5, 10이 실행되고, 두 번째로 func1() 함수가 호출됩니다. func1() 함수가 호출되고 나서야 func1()에 속한 명령어들이 실행되는 것이죠. 따라서 func1() 함수가 가장 위에 있지만, func1() 내부의 명령어들은 세 번째부터 실행됩니다.
▼ 표 13-2 실행 과정
실행 순서 |
실행되는 명령어 |
1 |
def func1():
➡︎ a, b = 5, 10 func1() |
2 |
def func1():
a, b = 5, 10 ➡︎ func1() |
3 |
def func1():
a, b = 5, 10 ➡︎ func1() |