Python: интерпретируемый или компилируемый?

Разбираемся, как на самом деле работает Python!

Ответ прост - на самом деле Python и компилируемый, и интерпретируемый язык.

🔹 А теперь рассмотрим как это работает на самом деле

Глобально процесс выполнения программ, написанных на языке Python делится на 2 шага:

1. Компиляция исходного кода в байт-код

Это происходит сразу после запуска программы и результат процесс почти скрыт от пользователя (почему почти - обязательно раскажем в следующих постах). На данном шаге Python переводит исходный код (операторы внутри файла) в байт-код (низкоуровневое и независимое от платформы представление исходного кода).

2. Интерпретация байт-кода

После того как Python получил скомпилированные .pyc файлы, наступает момент интерпретации полученного байт-кода. Тут наступает время PVM (Python Virtual Machine), которая в свою очередь выполняет байт-код. Кстати, для ускорения повторных запусков, байт-код кэшируется. Во время следующего запуска программы Python пропустит шаг компиляции и подгрузит ранее скомпилированный байт-код при условии, что вы не меняли исходный код и версию Python.

🔹 Так почему же принято называть Python интерпретируемым языком программировнаия ?

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

Хотите узнать больше про тонкости Python? Пишите в комментариях! 👇

Python: интерпретируемый или компилируемый?
Разбираемся, как на самом деле работает Python!
Ответ прост - на самом деле Python и компилируемый, и интерпретируемый язык | Сетка — социальная сеть от hh.ru