Python

Материал из llmdocs — справочник разработчика
Портал: Python
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.

Основные области и библиотеки:

Изменения в языке проходят через процедуру PEP — документы с обоснованием, обсуждением и решением руководящего совета.

Критика

Чаще всего Python критикуют за скорость исполнения «чистого» кода (на порядок и более ниже компилируемых языков вроде Go и Rust), за долгое отсутствие настоящей многопоточности из-за GIL и за исторически запутанную систему упаковки. На практике тяжёлые вычисления выносят в библиотеки на C, C++ или Rust, а Python остаётся «клеем» между ними.

См. также

Источники

  1. The Python Tutorial
  2. History and License — Python documentation
  3. PEP 602 — Annual Release Cycle for Python
  4. PEP 13 — Python Language Governance
  5. PEP 703 — Making the Global Interpreter Lock Optional in CPython
  6. What's New in Python 3.14
  7. PEP 20 — The Zen of Python