🐍🍽️ Питон съел GIL на завтрак: что нового в версии 3.13

Ты сидишь? Лучше сядь. Они реально сделали это – JIT-компилятор, улучшенная типизация, и, ты не поверишь, GIL наконец-то отправляется на пенсию!

Этот материал взят из нашей еженедельной email-рассылки, посвященной бэкенду. Подпишитесь, чтобы быть в числе первых, кто получит дайджест.

В версии Python 3.13, которая выйдет 7 октября 2024 года, будет представлено множество нововведений – в основном они направлены на повышение удобства использования и улучшение производительности языка. Авторы Real Python подробно рассказали обо всех новых фичах.

Интерактивный интерпретатор REPL

REPL теперь поддерживает многострочное редактирование, возможность быстрого вызова ранее написанного кода целыми блоками, а также правильное копирование и вставку кода с пустыми строками, чего не было в предыдущих версиях. Добавлены новые команды (exit или quit для выхода, clear для очистки экрана) и горячие клавиши (F2 для вывода истории, F3 для перехода в режим вставки) и т. д.

Более информативные сообщения об ошибках

Теперь трассировки ошибок имеют цветовую подсветку, что делает их более заметными и понятными. Кроме того, если вы допустите опечатку в ключевых словах или именах аргументов функций, Python предложит возможные исправления. Улучшено сообщение об ошибках при импорте, особенно если файл с таким же именем уже существует в стандартной библиотеке или в вашем проекте. Python теперь подскажет, что файл или модуль может конфликтовать с библиотекой:

Удаление глобальной блокировки интерпретатора (GIL)

Продолжается работа над удалением GIL – это важнейший шаг на пути к многопоточному Питону, который сможет преодолеть все нынешние проблемы с производительностью языка.

Но пока что отключение GIL негативно сказывается на производительности 🤫

Экспериментальный компилятор JIT (Just-In-Time)

В новой версии Python представлен экспериментальный компилятор JIT, который должен ускорить выполнение кода за счет компиляции на лету – это еще один шаг к радикальному улучшению производительности языка.

JIT уже показывает небольшой прирост производительности
🐍 Библиотека питониста
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека питониста»
🐍🎓 Библиотека Python для собеса
Подтянуть свои знания по Python вы можете на нашем телеграм-канале «Библиотека Python для собеса»
🐍🧩 Библиотека задач по Python
Интересные задачи по Python для практики можно найти на нашем телеграм-канале «Библиотека задач по Python»

Улучшения в статической типизации

Продолжается работа над системой статической типизации, что делает проверку типов в Python более строгой и удобной для разработчиков. Среди самых важных новшеств:

  • PEP 696 – теперь можно задавать значения по умолчанию для параметров типов. Это упрощает работу с обобщенными типами.
  • PEP 742 – появилось улучшение для сужения типов через механизм TypeIs, что помогает более точно определять типы переменных во время выполнения кода.
TypeIs знает, что в else-случае tree_or_leaf должен быть int, а не Tree

CLI-интерфейс для модуля random

Теперь можно использовать python -m random для быстрого получения случайных чисел или выбора из списка элементов.

Новая функция copy.replace()

Добавлена новая функция copy.replace() для модификации неизменяемых объектов. Она позволяет создавать новые версии неизменяемых объектов с измененными полями без необходимости явного указания всех полей.

Улучшение работы с glob-паттернами

Python 3.13 улучшает работу с glob-паттернами в модуле pathlib:

  • Паттерн ** теперь рекурсивно обходит все директории и файлы, как в традиционных оболочках:
  • Добавлена функция glob.translate() для преобразования glob-паттернов в регулярные выражения:

Удаление отступов в docstrings

Python 3.13 теперь хранит docstrings без лишних отступов, что немного уменьшает использование памяти в больших проектах.

Если бы вы могли добавить ещё одну функцию в Python, что бы это было?

***

Python 3.13 только что вышел, принеся множество инноваций. Хотите быстро освоить новые возможности и укрепить свои навыки программирования? Курс «Основы программирования на Python» от Proglib Academy уже обновлен и готов помочь вам в этом.

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

admin
11 декабря 2018

ООП на Python: концепции, принципы и примеры реализации

Программирование на Python допускает различные методологии, но в его основе...
admin
28 июня 2018

3 самых важных сферы применения Python: возможности языка

Существует множество областей применения Python, но в некоторых он особенно...
admin
13 февраля 2017

Программирование на Python: от новичка до профессионала

Пошаговая инструкция для всех, кто хочет изучить программирование на Python...