Узор развернул над стойкой Оракула кусок трассы, тот, где промокод с улицы уходит в функцию проверки. В трассе видно, как машина Оракула ныряет на уровень глубже, работает там со своими именами и выныривает с ответом. Твоя машина из прошлого урока так не умеет: у неё один стек, одни имена и одна программа без функций.
В tree-walk интерпретаторе урока 80 вызов функции программы был вызовом функции Python: evaluate звал call, тот execute_block, тот снова evaluate, и стопку вызовов держал за тебя сам Python. Машина байткода так не может, и не должна. Сегодня она получит свою стопку кадров, слоты для локальных имён и ячейки для замыканий. И программа на ней уйдёт в рекурсию на 900 вызовов, ни разу не углубив стек Python.
урок из курса
Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.