й етап компіляції - інтерпретатору не вимагається щоразу знову і знову аналізувати інструкції вихідного тексту. У результаті Python здатний забезпечити швидкість виконання десь між традиційними компілює і традиційними інтерпретують мовами програмування.
Реалізації Pythonявляется основний, але не єдиною реалізацією мови програмування Python. Існують також наступні реалізації:
? Jython - реалізація Python, що використовує JVM в якості середовища виконання. Дозволяє прозоро використовувати Java-бібліотеки.
? PyS60 - реалізація мови для смартфонів фірми Nokia на платформі Series 60.
? IronPython - Python для .NET Framework і Mono. Компілює Python програми в MSIL, таким чином надаючи повну інтеграцію з .NET-системою.
? Stackless - також написана на Сі реалізація Python. Це не повноцінна реалізація, а патчі до CPython. Надає розширені можливості багатопотокового програмування і значно більшу глибину рекурсії.
? Python for .NET - ще одна реалізація Python для .NET. На відміну від IronPython ця реалізація не компілює Python код в MSIL, а тільки надає інтерпретатор, написаний на C #. Дозволяє використовувати .NET-збірки з Python коду.
? PyPy - реалізація Python, написана на Python. Дозволяє легко перевіряти нові можливості. У PyPy крім стандартного CPython включені можливості Stackless, Psyco. У проект інтегровані можливості аналізу Python коду і трансляція в інші мови і байткода віртуальних машин.
? python-safethread - версія CPython без GIL, що дозволяє одночасно виконувати Python потоки на всіх доступних процесорах. Внесено також деякі інші зміни.
? Unladen Swallow - розпочатий Google проект по розробці високоефективного, максимально сумісного з CPython JIT-компілятора на базі LLVM. Згідно з планами з розвитку Python, планувалося перенести вихідний код Unladen Swallow в CPython у версії 3.3. Але PEP - 3146 був скасований у зв'язку з відсутністю інтересу до Unladen Swallow з боку Google, основного спонсора розробки.
? tinypy - мінімалістична версія Python. Частина можливостей CPython не реалізована.
? Micro Python - ефективна реалізація Python 3 для вбудованих систем з малим об'ємом оперативної пам'яті.
Недоліки Python
Низька швидкодія
Класичний Python, як і багато інших інтерпретовані мови, які не застосовують, наприклад, JIT-компілятори, мають загальний недолік - порівняно невисоку швидкість виконання програм. Збереження байт-коду дозволяє інтерпретатору не витрачати зайвий час на перекомпіляцію коду модулів при кожному запуску, на відміну, наприклад, від мови Perl. Крім того, існує спеціальна JIT-бібліотека psyco, що дозволяє прискорити виконання програм (проте призводить до збільшення споживання оперативної пам'яті). Ефективність psyco сильно залежить від архітектури програми.
Існують реалізації мови Python, що вводять високопродуктивні віртуальні машини (ВМ) в якості бек-енду компілятора. Прикладами таких реалізацій може служити PyPy, що базується на LLVM; більш ранньої ініціативою є проект Parrot. Очікується, що використання ВМ типу LLVM призведе до тих самих результатів, що і використання аналогічних підходів для реалізацій мови Java, де низька обчислювальна продуктивність в основному подолана.
Безліч програм/бібліотек для інтеграції з іншими мовами програмування надають можливість використовувати іншу мову для написання критичних ділянок.
Неможливість модифікації вбудованих класів
У порівнянні з Ruby і деякими іншими мовами, в Python відсутня можливість модифікувати вбудовані класи, такі, як int, str, float, list та інші, що, однак, дозволяє Python споживати менше оперативної пам'яті і швидше працювати. Ще однією причиною введення такого обмеження є необхідність узгодження з модулями розширення. Багато модулі (з метою оптимізації швидкодії) перетворять Python-об'єкти елементарних типів до відповідних Сі-типам замість маніпуляцій з ними за допомогою Сі-API. Також це позбавляє від багатьох потенційних помилок при неконтрольованому динамічному перевизначенні вбудованих типів.