Ты сидишь? Лучше сядь. Они реально сделали это – JIT-компилятор, улучшенная типизация, и, ты не поверишь, GIL наконец-то отправляется на пенсию!
Этот материал взят из нашей еженедельной email-рассылки, посвященной бэкенду. Подпишитесь, чтобы быть в числе первых, кто получит дайджест.
(function () { let link = document .getElementById ("8d11385e-8b0d-4cdd-901e-98753551ed7d-https://proglib.io/w/2f5d6629-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); }); }) })();
В версии Python 3.13, которая выйдет 7 октября 2024 года, будет представлено множество нововведений – в основном они направлены на повышение удобства использования и улучшение производительности языка. Авторы Real Python подробно рассказали обо всех новых фичах.
Интерактивный интерпретатор REPL
REPL теперь поддерживает многострочное редактирование, возможность быстрого вызова ранее написанного кода целыми блоками, а также правильное копирование и вставку кода с пустыми строками, чего не было в предыдущих версиях. Добавлены новые команды (exit или quit для выхода, clear для очистки экрана) и горячие клавиши (F2 для вывода истории, F3 для перехода в режим вставки) и т. д.
Более информативные сообщения об ошибках
Теперь трассировки ошибок имеют цветовую подсветку, что делает их более заметными и понятными. Кроме того, если вы допустите опечатку в ключевых словах или именах аргументов функций, Python предложит возможные исправления. Улучшено сообщение об ошибках при импорте, особенно если файл с таким же именем уже существует в стандартной библиотеке или в вашем проекте. Python теперь подскажет, что файл или модуль может конфликтовать с библиотекой:
Удаление глобальной блокировки интерпретатора (GIL)
Продолжается работа над удалением GIL – это важнейший шаг на пути к многопоточному Питону, который сможет преодолеть все нынешние проблемы с производительностью языка.
Экспериментальный компилятор JIT (Just-In-Time)
В новой версии Python представлен экспериментальный компилятор JIT, который должен ускорить выполнение кода за счет компиляции на лету – это еще один шаг к радикальному улучшению производительности языка.
🐍 Библиотека питониста
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека питониста»
🐍🎓 Библиотека Python для собеса
Подтянуть свои знания по Python вы можете на нашем телеграм-канале «Библиотека Python для собеса»
🐍🧩 Библиотека задач по Python
Интересные задачи по Python для практики можно найти на нашем телеграм-канале «Библиотека задач по Python»
Улучшения в статической типизации
Продолжается работа над системой статической типизации, что делает проверку типов в Python более строгой и удобной для разработчиков. Среди самых важных новшеств:
- PEP 696 – теперь можно задавать значения по умолчанию для параметров типов. Это упрощает работу с обобщенными типами.
- PEP 742 – появилось улучшение для сужения типов через механизм TypeIs, что помогает более точно определять типы переменных во время выполнения кода.
CLI-интерфейс для модуля random
Теперь можно использовать python -m random для быстрого получения случайных чисел или выбора из списка элементов.
Новая функция copy.replace()
Добавлена новая функция copy.replace() для модификации неизменяемых объектов. Она позволяет создавать новые версии неизменяемых объектов с измененными полями без необходимости явного указания всех полей.
Статья по теме
🐍🚀 Python 3.13: конец эпохи GIL и новые возможности для разработчиков
Улучшение работы с glob-паттернами
Python 3.13 улучшает работу с glob-паттернами в модуле pathlib:
- Паттерн ** теперь рекурсивно обходит все директории и файлы, как в традиционных оболочках:
- Добавлена функция glob.translate() для преобразования glob-паттернов в регулярные выражения:
Удаление отступов в docstrings
Python 3.13 теперь хранит docstrings без лишних отступов, что немного уменьшает использование памяти в больших проектах.
Если бы вы могли добавить ещё одну функцию в Python, что бы это было?
***
Python 3.13 только что вышел, принеся множество инноваций. Хотите быстро освоить новые возможности и укрепить свои навыки программирования? Курс «Основы программирования на Python» от Proglib Academy уже обновлен и готов помочь вам в этом.
(function () { let link = document .getElementById ("8d11385e-8b0d-4cdd-901e-98753551ed7d-https://proglib.io/w/723010af-38"); 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); }); }) })();