Python — компилируемый или интерпретируемый язык?

«Python — компилируемый или интерпретируемый язык?» — вопрос из категории Основы программирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Python принято называть интерпретируемым языком, но его выполнение включает этап компиляции. Это гибридная модель.

Процесс выполнения:

  1. Исходный код (.py) компилируется в байт-код (файлы .pyc).
  2. Байт-код выполняется виртуальной машиной Python (PVM) построчно.

Пример:

# hello.py
print("Hello, World!")

При запуске python hello.py происходит описанная выше двухэтапная процедура.

Ключевое отличие от чисто компилируемых языков (C, Go) — отсутствие создания отдельного машинного исполняемого файла. Байт-код зависит от PVM.