Python
| Класс языка | мультипарадигменный (объектно-ориентированный, императивный, функциональный) |
|---|---|
| Появился в | 1991 |
| Автор | Гвидо ван Россум |
| Разработчик | Python Software Foundation |
| Расширение файлов | .py, .pyi, .pyc |
| Выпуск версий | ежегодно, в октябре (PEP 602) |
| Типизация | динамическая, строгая, утиная; необязательные аннотации типов |
| Основная реализация | CPython |
| Другие реализации | PyPy, MicroPython, GraalPy, Jython |
| Лицензия | PSF License |
| Сайт | python.org |
Python (произносится «пайтон», в русской среде часто «питон») — высокоуровневый язык программирования общего назначения с динамической типизацией и автоматическим управлением памятью. Язык ориентирован на читаемость кода: блоки выделяются отступами, а синтаксис намеренно минималистичен. Python применяется в веб-разработке, автоматизации, анализе данных, машинном обучении и научных вычислениях и стабильно входит в число самых популярных языков мира.
История
Работу над языком Гвидо ван Россум начал в конце 1989 года в нидерландском исследовательском институте CWI как над преемником учебного языка ABC. Первая публичная версия 0.9.0 вышла в феврале 1991 года.[2] Название взято не от змеи, а от британского комедийного шоу «Летающий цирк Монти Пайтона».
Ключевые вехи:
| Год | Событие |
|---|---|
| 1994 | Python 1.0 |
| 2000 | Python 2.0: сборщик циклических ссылок, списковые включения |
| 2001 | основана некоммерческая Python Software Foundation (PSF) |
| 2008 | Python 3.0 — несовместимая с 2.x версия, исправившая ранние решения (строки Unicode, print() как функция) |
| 2019 | управление передано выборному руководящему совету из пяти человек (PEP 13)[4] |
| 2020 | 1 января прекращена поддержка Python 2.7 |
До 2018 года ван Россум носил шуточный титул «великодушного пожизненного диктатора» (BDFL) и принимал окончательные решения по развитию языка. Переход на ветку 3.x растянулся более чем на десятилетие и стал хрестоматийным примером того, насколько дорого обходится нарушение обратной совместимости.
С версии 3.9 выпуски выходят ежегодно в октябре, каждая ветка получает около двух лет исправлений ошибок и ещё три года — исправлений безопасности.[3]
Особенности языка
Философию языка кратко описывает «Дзен Python» (PEP 20): «явное лучше неявного», «простое лучше сложного», «читаемость имеет значение».[7] Его можно вывести командой import this.
- Отступы как синтаксис. Вложенность блоков задаётся отступом, а не фигурными скобками; стиль оформления закреплён в PEP 8.
- Динамическая строгая типизация. Тип связан со значением, а не с переменной, но неявных преобразований вроде
"1" + 1язык не делает. С версии 3.5 поддерживаются аннотации типов, которые проверяют внешние анализаторы (mypy и pyright). - «Батарейки в комплекте». Обширная стандартная библиотека покрывает работу с файлами, сетью, JSON, регулярными выражениями, многопоточностью и асинхронностью (asyncio).
- Всё — объект. Функции, классы и модули являются объектами первого класса, что упрощает декораторы и метапрограммирование.
- Итераторы и генераторы — ленивые последовательности, см. Генераторы и итераторы.
Пример:
from collections import Counter
def top_words(text: str, n: int = 3) -> list[tuple[str, int]]:
words = (w.strip(".,!?").lower() for w in text.split())
return Counter(w for w in words if w).most_common(n)
print(top_words("Явное лучше неявного. Простое лучше сложного."))
# [('лучше', 2), ('явное', 1), ('неявного', 1)]
Реализации и производительность
Эталонная реализация — CPython, написанная на C: она компилирует исходный код в байт-код и исполняет его на виртуальной машине. Исторически её главным ограничением была глобальная блокировка интерпретатора (GIL), не позволяющая потокам одновременно исполнять Python-код на разных ядрах (см. GIL и free-threading (PEP 703)).
В последних версиях производительность заметно выросла: проект Faster CPython ускорил интерпретатор начиная с 3.11, в 3.13 появились экспериментальные JIT-компилятор и сборка без GIL,[5] а в 3.14 сборка без GIL получила статус официально поддерживаемой.[6]
Альтернативные реализации: PyPy (трассирующий JIT, часто в разы быстрее на «чистом» Python), MicroPython (микроконтроллеры), GraalPy (JVM/GraalVM).
Экосистема
Пакеты публикуются в каталоге PyPI и устанавливаются через pip; проекты изолируют зависимости в виртуальных окружениях, а метаданные описывают в pyproject.toml. Набирают популярность быстрые инструменты на Rust: менеджер пакетов uv и линтер Ruff.
Основные области и библиотеки:
- данные и наука: NumPy, pandas, Jupyter;
- машинное обучение: PyTorch, scikit-learn;
- веб: Django, Flask, FastAPI;
- тестирование: pytest.
Изменения в языке проходят через процедуру PEP — документы с обоснованием, обсуждением и решением руководящего совета.
Критика
Чаще всего Python критикуют за скорость исполнения «чистого» кода (на порядок и более ниже компилируемых языков вроде Go и Rust), за долгое отсутствие настоящей многопоточности из-за GIL и за исторически запутанную систему упаковки. На практике тяжёлые вычисления выносят в библиотеки на C, C++ или Rust, а Python остаётся «клеем» между ними.