Python | |
---|---|
Семантика | Императивное, процедурное, структурное программирование, ООП[1], метапрограммирование[2], функциональное[1], асинхронное программирование[3] |
Класс языка | Мультипарадигменный язык программирования |
Тип исполнения | Интерпретируемый |
Появился в | 20 февраля 1991[4] |
Автор | Гвидо ван Россум[4] |
Разработчик | Python Software Foundation и Гвидо ван Россум[4] |
Расширение файлов |
.py, .pyc, .pyo (до версии 3.5) |
Выпуск | |
Испытал влияние | Алгол 68[7], ABC[8], Модула-3[9], Си[10], C++[9], Perl, Java[11], Лисп[12], Haskell[13], APL[14], Клу, Dylan, Icon и SML[14] |
Лицензия | Python Software Foundation License[4] |
Сайт | python.org (англ.) |
ОС | кроссплатформенность[15] |
Медиафайлы на Викискладе |
Python (МФА: [ˈpʌɪθ(ə)n]; в русском языке встречаются названия пито́н[16] или па́йтон[17]) — мультипарадигмальный высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью[1][18], ориентированный на повышение производительности разработчика, читаемости кода и его качества, а также на обеспечение переносимости написанных на нём программ[19]. Язык является полностью объектно-ориентированным в том плане, что всё является объектами[1]. Необычной особенностью языка является выделение блоков кода отступами[20]. Синтаксис ядра языка минималистичен, за счёт чего на практике редко возникает необходимость обращаться к документации[19]. Сам же язык известен как интерпретируемый и используется в том числе для написания скриптов[1]. Недостатками языка являются зачастую более низкая скорость работы и более высокое потребление памяти написанных на нём программ по сравнению с аналогичным кодом, написанным на компилируемых языках, таких как C или C++[1][19].
Python является мультипарадигменным языком программирования, поддерживающим императивное, процедурное, структурное, объектно-ориентированное программирование[1], метапрограммирование[2], функциональное программирование[1] и асинхронное программирование[3]. Задачи обобщённого программирования решаются за счёт динамической типизации[21][22]. Аспектно-ориентированное программирование частично поддерживается через декораторы[23], более полноценная поддержка обеспечивается дополнительными фреймворками[24]. Такие методики как контрактное и логическое программирование можно реализовать с помощью библиотек или расширений[25]. Основные архитектурные черты — динамическая типизация, автоматическое управление памятью[1], полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений с глобальной блокировкой интерпретатора (GIL)[26], высокоуровневые структуры данных. Поддерживается разбиение программ на модули, которые, в свою очередь, могут объединяться в пакеты[27].
Эталонной реализацией Python является интерпретатор CPython, который поддерживает большинство активно используемых платформ[28], являющийся стандартом де-факто языка[29]. Он распространяется под свободной лицензией Python Software Foundation License, позволяющей использовать его без ограничений в любых приложениях, включая проприетарные[30]. CPython компилирует исходные тексты в высокоуровневый байт-код, который исполняется в стековой виртуальной машине[31]. К другим трём основным реализациям языка относятся Jython (для JVM), IronPython (для CLR/.NET) и PyPy[1][32]. PyPy написан на подмножестве языка Python (RPython) и разрабатывался как альтернатива CPython с целью повышения скорости исполнения программ, в том числе за счёт использования JIT-компиляции[32]. Поддержка версии Python 2 закончилась в 2020 году[33]. На текущий момент активно развивается версия языка Python 3[34]. Разработка языка ведётся через предложения по расширению языка PEP (англ. Python Enhancement Proposal), в которых описываются нововведения, делаются корректировки согласно обратной связи от сообщества и документируются итоговые решения[35].
Стандартная библиотека включает большой набор полезных переносимых функций, начиная с возможностей для работы с текстом и заканчивая средствами для написания сетевых приложений. Дополнительные возможности, такие как математическое моделирование, работа с оборудованием, написание веб-приложений или разработка игр, могут реализовываться посредством обширного количества сторонних библиотек, а также интеграцией библиотек, написанных на Си или C++, при этом и сам интерпретатор Python может интегрироваться в проекты, написанные на этих языках[1]. Существует и специализированный репозиторий программного обеспечения, написанного на Python, — PyPI[36]. Данный репозиторий предоставляет средства для простой установки пакетов в операционную систему и стал стандартом де-факто для Python[37]. По состоянию на 2019 год в нём содержалось более 175 тысяч пакетов[36].
Python стал одним из самых популярных языков, он используется в анализе данных, машинном обучении, DevOps и веб-разработке, а также в других сферах, включая разработку игр. За счёт читабельности, простого синтаксиса и отсутствия необходимости в компиляции язык хорошо подходит для обучения программированию, позволяя концентрироваться на изучении алгоритмов, концептов и парадигм. Отладка же и экспериментирование в значительной степени облегчаются тем фактом, что язык является интерпретируемым[1][38]. Применяется язык многими крупными компаниями, такими как Google или Facebook[1].
<ref>
; для сносок :8
не указан текст<ref>
; для сносок :9
не указан текст<ref>
; для сносок :3
не указан текст