Найти в Дзене
Библиотека программиста

🐍🆕 Змея сбросила старую кожу: что нового в Python 3.13

Версия 3.13 принесла ряд важных нововведений, нацеленных на повышение скорости выполнения кода, улучшение читаемости и новые возможности для интерактивной работы. Вот главные изменения, которые должен знать каждый Python-разработчик. Этот материал взят из нашей субботней email-рассылки, посвященной Python. Подпишитесь, чтобы быть в числе первых, кто получит дайджест. 📧 Подписаться (function () { let link = document .getElementById ("6f06bd66-16c6-4d5a-abfd-1f2f48274f52-https://proglib.io/w/edaee37b-2"); if (! link) return; let href = link .getAttribute ("href"); if (! href) return; let prefix = link .dataset .prefix; let action = link .dataset .action; link .addEventListener ("click", function (e) { let data = new FormData (); data .append ("url", href); apiFetch (action, {

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

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

📧 Подписаться

(function () { let link = document .getElementById ("6f06bd66-16c6-4d5a-abfd-1f2f48274f52-https://proglib.io/w/edaee37b-2"); if (! link) return; let href = link .getAttribute ("href"); if (! href) return; let prefix = link .dataset .prefix; let action = link .dataset .action; link .addEventListener ("click", function (e) { let data = new FormData (); data .append ("url", href); apiFetch (action, { method: "POST", body: data }) .then (function (res) {}) .catch (function (err) { console .error (err); }); }) })();

Новые фичи направлены на повышение производительности, улучшение читаемости кода и дополнительные возможности для работы с интерактивной оболочкой. Вот основные нововведения:

Улучшенный интерактивный интерпретатор REPL:

  • Теперь поддерживает подсветку промптов, многострочное редактирование с сохранением истории, интерактивный просмотр справки по F1, навигацию по истории с помощью F2, режим вставки по F3.
  • Цвета можно отключить через переменные окружения PYTHON_COLORS и NO_COLOR.
  • Команды help, exit, quit теперь можно вводить без скобок.
  • Появилась автоматическая расстановка отступов.
  • Реализована корректная обработка вставки кода через буфер обмена, без необходимости вводить две пустые строки для разделения блоков.
  • Добавлена поддержка истории на уровне блоков кода, а не отдельных строк, что позволяет легко редактировать и перезапускать целые блоки.

В полной мере новые фичи REPL пока что доступны только на macOS и Unix-подобных системах. Подробнее обо всех возможностях обновленного REPL – в этой статье.

   REPL теперь поддерживает блоки кода
REPL теперь поддерживает блоки кода

🐍 Библиотека питониста

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека питониста»

🐍💼 Библиотека собеса по Python

Подтянуть свои знания по Python вы можете на нашем телеграм-канале «Библиотека собеса по Python»

🧩🐍 Библиотека задач по Python

Интересные задачи по Python для практики можно найти на нашем телеграм-канале «Библиотека задач по Python»

Улучшенные сообщения об ошибках:

  • Трассировки ошибок по умолчанию теперь цветные, настройки управляются в PYTHON_COLORS.
  • Если есть скрипт с таким же именем, что и модуль, выдается подсказка о переименовании.
  • Если задан неправильный ключевой аргумент функции, предлагается возможная правильная версия.

Новые возможности аннотации типов:

  • Параметры типов (TypeVar, ParamSpec, TypeVarTuple) теперь поддерживают значения по умолчанию.
  • Добавлен TypeIs для более узкого определения типов.
  • Добавлен ReadOnly для помеченных только для чтения элементов TypedDict.

Экспериментальный JIT-компилятор:

  • Включается при сборке с --enable-experimental-jit.
  • Использует оптимизированный внутренний байт-код Tier 2 и трансляцию в машинный код.
  • Зависит от LLVM, имеет режимы только интерпретатора Tier 2.
  • Может ускорить выполнение некоторых программ.

Экспериментальная поддержка свободной развязки потоков:

  • При сборке с --disable-gil отключается глобальная блокировка интерпретатора (GIL).
  • Позволяет полностью использовать параллелизм на многоядерных системах.

Прочие изменения:

  • iOS теперь – официально поддерживаемая платформа.
  • Сборщик мусора стал инкрементальным.
  • Удалены более 19 устаревших модулей и библиотек.

Все остальные подробности – в официальной документации.