История Python - History of Python
В язык программирования Python был задуман в конце 1980-х,[1] и его реализация началась в декабре 1989 г.[2] к Гвидо ван Россум в CWI в Нидерланды как преемник ABC способен Обработка исключений и взаимодействие с Операционная система Amoeba.[3] Ван Россум - главный автор Python, и его неизменная центральная роль в определении направления развития Python отражена в титуле, присвоенном ему сообществом Python: Доброжелательный диктатор на всю жизнь (БДФЛ).[4][5] (Однако ван Россум ушел с поста лидера 12 июля 2018 г.[6]) Python был назван в честь телешоу BBC Летающий цирк Монти Пайтона.[7]
Python 2.0 был выпущен 16 октября 2000 г. с множеством важных новых функций, в том числе обнаружением циклов. уборщик мусора (в добавление к подсчет ссылок ) за управление памятью и поддержка Unicode. Однако наиболее важным изменением стал сам процесс разработки с переходом к более прозрачному и поддерживаемому сообществом процессу.[8]
Python 3.0, крупный, обратно несовместимый выпуск, был выпущен 3 декабря 2008 г.[9] после длительного периода тестирования. Многие из его основных функций также были портированный к обратно совместимым, но пока не поддерживаемым Python 2.6 и 2.7.[10]
Ранняя история
В феврале 1991 года Ван Россум опубликовал код (помеченный как версия 0.9.0) в alt.sources.[11] Уже присутствующие на данном этапе разработки были классы с наследованием, обработка исключений, функции и основные типы данных список
, диктовать
, ул
и так далее. Также в этом первоначальном выпуске был модульная система заимствовано из Модула-3; Ван Россум описывает модуль как «одну из основных программных единиц Python».[1] Модель исключений Python также похожа на модель Modula-3 с добавлением еще
пункт.[3] В 1994 г. comp.lang.python был сформирован основной дискуссионный форум для Python, что стало важной вехой в росте пользовательской базы Python.[1]
Версия 1
Python достиг версии 1.0 в январе 1994 года. Основными новыми функциями, включенными в этот выпуск, были инструменты функционального программирования. лямбда
, карта
, фильтр
и уменьшать
. Ван Россум заявил, что «Python приобрел лямбда-выражения, reduce (), filter () и map () благодаря Лисп хакер, который их пропустил и прислал рабочие патчи ".[12]
Последней версией, выпущенной, когда Ван Россум был на CWI, был Python 1.2. В 1995 году Ван Россум продолжил свою работу над Python в Корпорация национальных исследовательских инициатив (CNRI) в Отдыхай, Вирджиния откуда выпустил несколько версий.
К версии 1.4 Python получил несколько новых функций. Среди них выделяются модели Modula-3. аргументы ключевого слова (которые также похожи на Common Lisp аргументы ключевого слова) и встроенная поддержка сложные числа. Также включена базовая форма сокрытие данных к искажение имени, хотя это легко обойти.[13]
Во время пребывания Ван Россума в CNRI он запустил Компьютерное программирование для всех (CP4E), направленная на то, чтобы сделать программирование более доступным для большего числа людей, с базовой «грамотностью» в языках программирования, аналогичной базовой английской грамотности и математическим навыкам, требуемым большинством работодателей. Python сыграл в этом центральную роль: из-за его ориентации на чистый синтаксис он уже был подходящим, а цели CP4E имели сходство с его предшественником, ABC. Проект финансировался DARPA.[14] По состоянию на 2007 год[Обновить]проект CP4E неактивен, и хотя Python пытается быть легко обучаемым и не слишком запутанным в своем синтаксисе и семантике, отправка электронной почты непрограммистам не является активной проблемой.[15]
Быть открытым
В 2000 году команда разработчиков ядра Python переехала в BeOpen.com[16] сформировать BeOpen PythonLabs команда под руководством одного из первых выпускников Google Доменик Меренда.[17][18] CNRI попросила выпустить версию 1.6, в которой будут обобщены результаты разработки Python до момента, когда команда разработчиков покинула CNRI. Следовательно, графики выпуска 1.6 и 2.0 в значительной степени совпадали.[8] Python 2.0 был единственным выпуском от BeOpen.com. После того, как на BeOpen.com был выпущен Python 2.0, к ним присоединились Гвидо ван Россум и другие разработчики PythonLabs. Цифровые творения.
Версия Python 1.6 включала новую лицензию CNRI, которая была значительно длиннее, чем лицензия CWI, которая использовалась для более ранних версий. В новую лицензию был включен пункт о том, что лицензия регулируется законами Штат Вирджиния. В Фонд свободного программного обеспечения утверждал, что оговорка о выборе закона несовместима с Стандартная общественная лицензия GNU. BeOpen, CNRI и FSF договорились об изменении Python лицензия на бесплатное программное обеспечение это сделало бы его совместимым с GPL. Python 1.6.1 по сути такой же, как Python 1.6, с небольшими исправлениями ошибок и с новой лицензией, совместимой с GPL.[19]
Версия 2
Python 2.0, выпущенный в октябре 2000 г.,[8] представил составить список, функция, заимствованная из функциональное программирование языки SETL и Haskell. Синтаксис Python для этой конструкции очень похож на синтаксис Haskell, за исключением того, что Haskell предпочитает символы пунктуации и Python предпочитает алфавитные ключевые слова. Python 2.0 также представил вывоз мусора система, способная собирать эталонные циклы.[8]
Python 2.1 был близок к Python 1.6.1, а также к Python 2.0. Лицензия была переименована Лицензия Python Software Foundation. Весь код, документация и спецификации, добавленные с момента альфа-версии Python 2.1, принадлежат Фонд программного обеспечения Python (PSF), некоммерческая организация, созданная в 2001 году по образцу Фонд программного обеспечения Apache.[19] Релиз включал изменение в спецификацию языка для поддержки вложенных областей, как и другие статическая область видимости языков.[20] (Эта функция была отключена по умолчанию и не требовалась до Python 2.2.)
Python 2.2 был выпущен в декабре 2001 г .;[21] Основным нововведением было объединение типов Python (типов, написанных на C) и классов (типов, написанных на Python) в одну иерархию. Это единственное объединение сделало объектную модель Python чисто и последовательно объектно-ориентированной.[22] Также добавлены были генераторы которые были вдохновлены Значок.[23]
Python 2.5 был выпущен в сентябре 2006 г. [24] и представил с
оператор, который включает блок кода в диспетчере контекста (например, получение замок перед запуском блока кода и снятием блокировки после этого или открытием файл а затем закрывая его), позволяя Приобретение ресурсов - это инициализация (RAII) -подобное поведение и замена общей идиомы try / finally. [25]
Python 2.6 был выпущен одновременно с Python 3.0 и включал некоторые функции из этого выпуска, а также режим «предупреждений», который подчеркивал использование функций, которые были удалены в Python 3.0.[26][10] Точно так же Python 2.7 совпал и включал функции из Python 3.1,[27] который был выпущен 26 июня 2009 г. Параллельные выпуски 2.x и 3.x были прекращены, и Python 2.7 стал последним выпуском в серии 2.x.[28] В ноябре 2014 года было объявлено, что Python 2.7 будет поддерживаться до 2020 года, но пользователям было рекомендовано как можно скорее перейти на Python 3.[29] Поддержка Python 2.7 закончилась 1 января 2020 г. вместе с замораживание кода 2.7 ветка разработки. Последний выпуск 2.7.18 вышел 20 апреля 2020 г. и включал исправления критических ошибок и средства блокировки выпуска.[30] Это знаменует собой конец жизни из Python 2.[31]
Версия 3
Python 3.0 (также называемый «Python 3000» или «Py3K») был выпущен 3 декабря 2008 года.[9] Он был разработан для исправления фундаментальных недостатков дизайна языка - требуемые изменения не могли быть реализованы при сохранении полной обратной совместимости с серией 2.x, что потребовало нового основного номера версии. Руководящий принцип Python 3 заключался в следующем: «уменьшить дублирование функций, удалив старые способы работы».
Python 3.0 был разработан с той же философией, что и в предыдущих версиях. Однако, поскольку Python накопил новые и избыточные способы программирования одной и той же задачи, Python 3.0 сделал акцент на удалении дублирующих конструкций и модулей в соответствии с принципом «Должен быть один - и желательно только один - очевидный способ сделать это».
Тем не менее, Python 3.0 оставался многопарадигмальный язык. Кодеры все еще могли следовать объектно-ориентированный, структурированный, и функциональный парадигмы программирования, среди прочего, но при таком широком выборе детали должны были быть более очевидными в Python 3.0, чем в Python 2.x.
Совместимость
Python 3.0 сломался Обратная совместимость, и большая часть кода Python 2 не запускается без изменений на Python 3. Python динамическая типизация в сочетании с планами по изменению семантики некоторых методов словарей, например, сделал совершенным механический перевод с Python 2.x на Python 3.0 очень сложно. Инструмент под названием «2to3» выполняет части перевода, которые могут выполняться автоматически. При этом 2to3 оказался довольно успешным, хотя в раннем обзоре было отмечено, что есть аспекты перевода, с которыми такой инструмент никогда не справится.[32] До развертывания Python 3 для проектов, требующих совместимости с сериями 2.x и 3.x, рекомендовалось иметь один источник (для серии 2.x), а выпускать выпуски для платформы Python 3.x с использованием 2to3. Редактировать код Python 3.x не рекомендуется до тех пор, пока код должен работать на Python 2.x.[10] Это больше не рекомендуется; с 2012 года предпочтительным подходом было создание единой базы кода, которая может работать как под Python 2, так и под Python 3 с использованием модулей совместимости.[33]
Функции
Некоторые из основных изменений, внесенных в Python 3.0:
- Изменение
Распечатать
так что это встроенная функция, а не инструкция. Это упростило изменение модуля для использования другой функции печати, а также упорядочило синтаксис. В Python 2.6 и 2.7Распечатать()
доступен как встроенный, но маскируется синтаксисом оператора печати, который можно отключить, введяfrom __future__ import print_function
вверху файла[34] - Удаление Python 2
Вход
функция и переименованиесырой ввод
функция дляВход
. Python 3Вход
функция ведет себя как Python 2сырой ввод
функция, в которой ввод всегда возвращается как строка, а не оценивается как выражение - Движущийся
уменьшать
(но неткарта
или жефильтр
) из встроенного пространства имен вfunctools
(обоснование - это код, который используетуменьшать
менее читабелен, чем код, использующий цикл for и переменную аккумулятора)[35][36] - Добавление поддержки дополнительных аннотаций функций, которые можно использовать для неформальные объявления типов или другие цели[37]
- Объединение
ул
/юникод
типы, представляющие текст, и вводящие отдельный неизменяемыйбайты
тип; и в основном соответствующий изменяемыйbytearray
тип, оба из которых представляют собой массивы байты[38] - Удаление функций обратной совместимости, включая классы старого стиля, строковые исключения и неявный относительный импорт
- Изменение в целочисленное деление функциональность: в Python 2,
5 / 2
является2
; в Python 3,5 / 2
является2.5
. (Как в Python 2 (начиная с версии 2.2), так и в Python 3 существует отдельный оператор для обеспечения старого поведения:5 // 2
является2
)
Последующие выпуски серии Python 3.x включали дополнительные существенные новые функции; все текущее развитие языка осуществляется в серии 3.x.
Таблица версий
Выпуски до нумерованных версий:
- Начало реализации - декабрь 1989 г.[2]
- Внутренние релизы на Centrum Wiskunde & Informatica - 1990[2]
Версия | Последняя микро-версия | Дата выхода | Окончание полной поддержки | Конец исправлений безопасности | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0.9 | 0.9.9[2] | 1991-02-20[2] | [а][2] | 1993-07-29|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.0 | 1.0.4[2] | 1994-01-26[2] | [а][2] | 1994-02-15|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.1 | 1.1.1[2] | 1994-10-11[2] | [а][2] | 1994-11-10|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.2 | 1995-04-13[2] | Не поддерживается | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.3 | 1995-10-13[2] | Не поддерживается | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.4 | 1996-10-25[2] | Не поддерживается | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.5 | 1.5.2[39] | 1998-01-03[2] | [а][2] | 1999-04-13|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.6 | 1.6.1[39] | 2000-09-05[40] | [а][39] | 2000-09|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.0 | 2.0.1[41] | 2000-10-16[42] | [а][41] | 2001-06-22|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.1 | 2.1.3[41] | 2001-04-15[43] | [а][41] | 2002-04-09|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2 | 2.2.3[41] | 2001-12-21[44] | [а][41] | 2003-05-30|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.3 | 2.3.7[41] | 2003-06-29[45] | [а][41] | 2008-03-11|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.4 | 2.4.6[41] | 2004-11-30[46] | [а][41] | 2008-12-19|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.5 | 2.5.6[41] | 2006-09-19[47] | [а][41] | 2011-05-26|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.6 | 2.6.9[26] | 2008-10-01[26] | [b][26] | 2010-08-24[26] | 2013-10-29||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.7 | 2.7.18[31] | 2010-07-03[31] | [c][31] | 2020-01-01|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.0 | 3.0.1[41] | 2008-12-03[26] | [48] | 2009-06-27|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.1 | 3.1.5[49] | 2009-06-27[49] | [50] | 2011-06-12[49] | 2012-06||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.2 | 3.2.6[51] | 2011-02-20[51] | [b][51] | 2013-05-13[51] | 2016-02-20||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.3 | 3.3.7[52] | 2012-09-29[52] | [b][52] | 2014-03-08[52] | 2017-09-29||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.4 | 3.4.10[53] | 2014-03-16[53] | [54] | 2017-08-09[а][53] | 2019-03-18||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.5 | 3.5.10[55] | 2015-09-13[55] | [56] | 2017-08-08[55] | 2020-09-30||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.6 | 3.6.12[57] | 2016-12-23[57] | [b][57] | 2018-12-24[57] | 2021-12||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.7 | 3.7.9[58] | 2018-06-27[58] | [b][58] | 2020-06-27[58] | 2023-06||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.8 | 3.8.6[59] | 2019-10-14[59] | [59] | 2021-04[59] | 2024-10||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.9 | 3.9.0[60] | 2020-10-05[60] | [61] | 2022-05[60][61] | 2025-10||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.10 | 2021-10-25[62] | [62] | 2023-05[62] | 2026-10|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Легенда: Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия Будущий выпуск | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Курсив это последняя микроверсия поддерживаемых в настоящее время версий по состоянию на 2020-10-03. |
Примечания к таблице:
Поддерживать
Смотрите также
Рекомендации
- ^ а б c «Создание Python». Разработчик Artima. Получено 22 марта, 2007.
- ^ а б c d е ж грамм час я j k л м п о п q ван Россум, Гвидо (20 января 2009 г.). "Краткая хронология Python". Получено 29 ноября, 2019.
- ^ а б «Почему вообще был создан Python?». Python FAQ. Получено 22 марта, 2007.
- ^ ван Россум, Гвидо (31 июля 2008 г.). «Происхождение БДФЛ». Получено 1 августа, 2008.
- ^ "Сценарии разработчика Python в Google". www.eweek.com. Получено 13 мая, 2008.
- ^ Фэирчайлд, Карли (12 июля 2018 г.). "Гвидо ван Россум уходит с должности доброжелательного диктатора Python на всю жизнь". Linux журнал. Получено 12 июля, 2018.
- ^ «Общие вопросы по Python - документация по Python 3.8.3». docs.python.org.
- ^ а б c d Kuchling, Andrew M .; Задка, Моше. «Что нового в Python 2.0». Архивировано из оригинал 14 декабря 2009 г.. Получено 22 марта, 2007.
- ^ а б «Добро пожаловать на Python.org». python.org. Получено 27 декабря, 2016.
- ^ а б c ван Россум, Гвидо (5 апреля 2006 г.). «PEP 3000 - Python 3000». Получено 27 декабря, 2016.
- ^ "ИСТОРИЯ". Распространение исходного кода Python. Фонд Python. Получено 23 ноября, 2017.
- ^ ван Россум, Гвидо. «Судьба reduce () в Python 3000». Разработчик Artima. Получено 22 марта, 2007.
- ^ "LJ # 37: Обновление Python 1.4". Архивировано из оригинал 1 мая 2007 г.. Получено 29 апреля, 2007.
- ^ ван Россум, Гвидо. «Компьютерное программирование для всех». Получено 22 марта, 2007.
- ^ «Компьютерное программирование для всех». Фонд программного обеспечения Python. Архивировано из оригинал 29 марта 2007 г.. Получено 22 марта, 2007.
- ^ https://slashdot.org/story/00/05/30/1931239/python-development-team-moves-to-beopencom
- ^ https://web.archive.org/web/20000815095541/http://www.beopen.com/company/team.html
- ^ http://joeellsworth.com/resume/references/pybiz_beopen_partnership.pdf
- ^ а б «История программного обеспечения». Справочник по библиотеке Python. Архивировано из оригинал 29 марта 2007 г.. Получено 22 марта, 2007.
- ^ Хилтон, Джереми (1 ноября 2000 г.). «PEP 227 - Статически вложенные области». Получено 22 марта, 2007.
- ^ <https://www.python.org/download/releases/2.2/
- ^ Кучлинг, Эндрю М. (21 декабря 2001 г.). «PEP 252 и 253: изменение типа и класса». Что нового в Python 2.2. Python Foundation. Архивировано из оригинал 17 сентября 2008 г.. Получено 5 сентября, 2008.
- ^ Шеменауэр, Нил; Питерс, Тим; Хетланд, Магнус (21 декабря 2001 г.). «PEP 255 - Простые генераторы». Получено 5 сентября, 2008.
- ^ «Версия Python 2.5». Python.org.
- ^ «Основные моменты: Python 2.5». Python.org.
- ^ а б c d е ж Норвиц, Нил; Варшава, Барри (29 июня 2006 г.). «PEP 361 - график выпуска Python 2.6 и 3.0». Получено 29 ноября, 2019.
- ^ Кучлинг, Эндрю М. (3 июля 2010 г.). «Что нового в Python 2.7». Получено 7 октября, 2012.
Подобно тому, как Python 2.6 включает функции Python 3.0, версия 2.7 включает некоторые из новых функций Python 3.1. Серия 2.x продолжает предоставлять инструменты для перехода на серию 3.x.
- ^ Варшава, Барри (9 ноября 2011 г.). «PEP 404 - Расписание выхода Python 2.8». Получено 7 октября, 2012.
- ^ Джи, Сью (14 апреля 2014 г.). «Python 2.7 будет поддерживаться до 2020 года». i-programmer.info. Получено 27 декабря, 2016.
- ^ «Фиксирует · python / cpython на 2.7».
- ^ а б c d е Петерсон, Бенджамин (3 ноября 2008 г.). «PEP 373 - график выпуска Python 2.7». Получено 20 апреля, 2020.
- ^ Руби, Сэм; 2to3, 1 сентября 2007 г.
- ^ Коглан, Ник; Python 3: вопросы и ответы, 29 июня 2012 г.
- ^ Брандл, Георг (19 ноября 2007 г.). «PEP 3105 - Сделать печать функцией». Получено 27 декабря, 2016.
- ^ ван Россум, Гвидо. "Python 3000 FAQ". artima.com. Получено 27 декабря, 2016.
- ^ «Судьба reduce () в Python 3000». www.artima.com. Получено 31 декабря, 2019.
- ^ Уинтер, Коллин; Лоундс, Тони (2 декабря 2006 г.). «PEP 3107 - Функциональные аннотации». Получено 27 декабря, 2016.
- ^ ван Россум, Гвидо (26 сентября 2007 г.). «PEP 3137 - Неизменяемые байты и изменяемый буфер».
- ^ а б c "Релизы | Python.org". Получено 29 ноября, 2019.
- ^ Дрейк, Фред Л. младший (25 июля 2000 г.). «PEP 160 - график выпуска Python 1.6». Получено 29 ноября, 2019.
- ^ а б c d е ж грамм час я j k л м "Загрузить Python | Python.org". Получено 29 ноября, 2019.
- ^ Хилтон, Джереми. «PEP 200 - график выпуска Python 2.0». Получено 29 ноября, 2019.
- ^ Хилтон, Джереми (16 октября 2000 г.). «PEP 226 - график выпуска Python 2.1». Получено 29 ноября, 2019.
- ^ Варшава, Барри; ван Россум, Гвидо (17 апреля 2001 г.). «PEP 251 - график выпуска Python 2.2». Получено 29 ноября, 2019.
- ^ ван Россум, Гвидо (27 февраля 2002 г.). «PEP 283 - график выпуска Python 2.3». Получено 29 ноября, 2019.
- ^ Варшава, Барри; Хеттингер, Раймонд; Бакстер, Энтони (29 июля 2003 г.). «PEP 320 - график выпуска Python 2.4». Получено 29 ноября, 2019.
- ^ Норвиц, Нил; ван Россум, Гвидо; Бакстер, Энтони (7 февраля 2006 г.). «PEP 356 - график выпуска Python 2.5». Получено 29 ноября, 2019.
- ^ «17. Цикл разработки - Руководство разработчика Python». Получено 29 ноября, 2019.
- ^ а б c Петерсон, Бенджамин (8 февраля 2009 г.). «PEP 375 - график выпуска Python 3.1». Получено 29 ноября, 2019.
- ^ Петерсон, Бенджамин (12 июня 2011 г.). "[ВЫПУСКАЕТСЯ] Python 3.1.4". python-анонс (Список рассылки). Получено 29 ноября, 2019.
- ^ а б c d Брандл, Георг (30 декабря 2009 г.). «PEP 392 - график выпуска Python 3.2». Получено 29 ноября, 2019.
- ^ а б c d Брандл, Георг (23 марта 2011 г.). «PEP 398 - график выпуска Python 3.3». Получено 29 ноября, 2019.
- ^ а б c Гастингс, Ларри (17 октября 2012 г.). «PEP 429 - график выпуска Python 3.4». Получено 29 ноября, 2019.
- ^ Гастингс, Ларри (9 августа 2017 г.). «[ВЫПУСКНО] Python 3.4.7 теперь доступен». python-анонс (Список рассылки). Получено 29 ноября, 2019.
- ^ а б c Гастингс, Ларри (22 сентября 2014 г.). «PEP 478 - график выпуска Python 3.5». Получено 17 марта, 2020.
- ^ Гастингс, Ларри (8 августа 2017 г.). «[ВЫПУЩЕН] Python 3.5.4 теперь доступен». python-анонс (Список рассылки). Получено 29 ноября, 2019.
- ^ а б c d Дейли, Нед (30 мая 2015 г.). «PEP 494 - график выпуска Python 3.6». Получено 20 апреля, 2020.
- ^ а б c d Дейли, Нед (23 декабря 2016 г.). «PEP 537 - график выпуска Python 3.7». Получено 20 апреля, 2020.
- ^ а б c d Ланга, Лукаш (27 января 2018 г.). «PEP 569 - график выпуска Python 3.8». Получено 20 апреля, 2020.
- ^ а б c Ланга, Лукаш (13 октября 2020 г.). «PEP 596 - график выпуска Python 3.9». Получено 13 октября, 2020.
- ^ а б Ланга, Лукаш (4 июня 2019 г.). «PEP 602 - Годовой цикл выпуска для Python». Получено 29 ноября, 2019.
- ^ а б c Пабло, Пабло (25 мая 2020 г.). «PEP 619 - график выпуска Python 3.10». Получено 25 мая, 2020.