더북(TheBook)

프레임은 어떤 함수가 어떤 함수를 호출하는지를 쌓아 두는 방식(스택)으로 배열된다. 이 예제에서는 print_twicecat_twice에서 호출하고, cat_twice_ _main_ _에서 호출한다.
_ _main_ _은 최상위 프레임을 나타내는 특별한 이름이다. 함수 바깥에서 변수를 생성하면 이 변수는 _ _main_ _에 속한다.

각 인자는 해당 인수와 같은 값을 나타낸다. 따라서 part1line1과 같은 값이고, part2line2와 같은 값이고, brucecat과 같은 값이다.

함수 호출 동안에 오류가 발생하면 파이썬은 오류가 발생한 함수의 이름, 이 함수를 호출한 함수의 이름, 이 함수를 호출한 함수를 호출한 함수의 이름으로 거슬러 올라가며 _ _main_ _까지 출력한다.

예를 들어 print_twice 안에서 cat에 접근하려고 하면 NameError가 발생한다.

Traceback (innermost last):

File "test.py", line 13, in _ _main_ _

cat_twice(line1, line2)

File "test.py", line 5, in cat_twice

print_twice(cat)

File "test.py", line 9, in print_twice

print(cat)

NameError: name 'cat' is not defined

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