Практически ни один интерпретатор действительно не интерпретирует код напрямую , строка за строкой - это просто слишком неэффективно. Почти все интерпретаторы используют некоторое промежуточное представление, которое может быть легко выполнено. Кроме того, небольшая оптимизация может быть выполнена для этого промежуточного кода.
Кроме того, Python хранит этот код, который имеет огромное преимущество для следующего выполнения этого кода: Python больше не должен анализировать код; Парсинг - самая медленная часть процесса компиляции. Таким образом, представление байт-кода существенно снижает накладные расходы на выполнение.