Выпуск Python 3.9
Python 3.9 (выпущен 5 октября 2020) стал важным шагом в развитии языка, заложив фундамент для будущих изменений (включая синтаксис Python 3.10+) и значительно улучшив удобство работы с кодом.
Главная фича: Новый PEG-парсер
Одно из самых важных изменений — переход с LL(1) на PEG-парсер (PEP 617).
- Более гибкий и мощный синтаксический анализ
- Упрощает добавление новых языковых конструкций
- Стал основой для будущих фич (например,
match/caseв 3.10)
Производительность осталась примерно на том же уровне, но возможности языка существенно расширились :contentReference[oaicite:0]{index=0}
Оператор слияния словарей (| и |=)
PEP 584 добавил нативный способ объединения словарей:
d1 = {"a": 1}
d2 = {"a": 2, "b": 3}
result = d1 | d2
# {'a': 2, 'b': 3}
- Более читаемо, чем
**или.update() - Поддерживает как создание нового словаря (
|), так и обновление (|=) ([Python documentation][1])
Новые строковые методы
PEP 616:
str.removeprefix()str.removesuffix()
filename = "file.txt"
print(filename.removesuffix(".txt")) # file
Теперь можно безопасно удалять префиксы и суффиксы без багов strip() ([Python documentation][1])
Встроенные Generics (typing без typing)
PEP 585:
- Теперь можно писать:
def process(data: list[dict[str, int]]): ...
- Без
List,Dictизtyping - Работает прямо с базовыми типами (
list,dict, и др.) ([Python documentation][1])
Новые модули и стандартная библиотека
-
zoneinfo(PEP 615):- Встроенная поддержка часовых поясов (IANA база)
-
Новый модуль
graphlib:- Топологическая сортировка графов
-
Улучшения в
math,os,asyncioи других модулях ([Python documentation][1])
Производительность и интерпретатор
- Ускорение встроенных типов (
list,dict,set,tuple) - Использование протокола vectorcall (PEP 590) для ускорения вызовов
- Улучшения GC и внутренней инициализации модулей ([Python documentation][1])
Устаревшие и удалённые возможности
- Устаревание старого парсера (LL(1))
- Устаревание модуля
parser - Начало очистки устаревших API
История патчей (Subversions)
- 3.9.23 (Июль 2025) — финальные обновления безопасности
- 3.9.19 (Март 2024) — накопительные исправления безопасности
- 3.9.10 (Янв 2022) — исправления памяти и модулей
- 3.9.1 (Дек 2020) — поддержка Apple Silicon (M1)
- 3.9.0 (Окт 2020) — первоначальный релиз