Разработчики Python представили версию 3.7.0
Новости
Релиз добавил C API для TLS, новый формат файлов .рус, в которых кэшируется байткод, а также встроенную программную точку останова breakpoint().
5К открытий5К показов
Опубликована новая версия ЯП Python под номером 3.7.0. Обновление, которое провело в разработке полтора года, привнесло множество новых функций и исправлений существующих инструментов, а также общие улучшения производительности.
Подробнее о нововведениях в Python 3.7.0
Релиз добавил обновленный C API для локальной памяти потока (TLS), предоставляющий новый TSS (Thread Specific Storage) API вместо ранее использовавшегося TLS API. Новый API вводит тип Py_tss_t
вместо int, что позволяет запускать CPython на платформах, не позволяющих безопасное транслирование TLS-ключей в int.
Обновление включило новый формат файлов .рус
, в которых кэшируется байткод. Теперь для выявления изменений в коде в заголовочной секции файлов .pyc
может сохраняться хеш от кэшированного кода, что избавляет от проблем при переименовании старых версий исходного файла.
В Python 3.7.0 стала доступной встроенная точка останова breakpoint()
для программного вызова отладчика.
В набор инструментов добавлен новый модуль dataclass
вместе с декоратором dataclass()
, который предоставляет средства для определения классов данных, в которых применяются аннотации переменных класса с автоматической генерацией методов __repr__()
, __eq__()
и __hash__()
для определения атрибутов. Кроме того, появилась поддержка модуля typing
и generic-типов.
Также в новой версии появились несколько новых модулей, улучшающих работу с TLS и ресурсами внутри пакетов.
Обновления существующих компонентов
В модуле time
реализована поддержка операций с наносекундами. Для их включения необходимо дописать _ns
к существующим функциям.
Предупреждения DeprecationWarning
теперь появляются только для кода в основном модуле и при выполнении тестов, а для всех импортированных модулей и библиотек скрыты по умолчанию.
Также исключено использование кодировки ASCII по умолчанию. Вместо этого добавлена опция -X utf8
и переменная окружения PYTHONUTF8
для принудительного использования кодировки UTF-8. Кроме того, в классах str
, bytes
и bytearray
появился новый метод isascii()
для проверки строки на наличие только ASCII-символов.
Подробнее со всеми изменениями и улучшениями можно ознакомиться в техническом документе релиза Python 3.7.0. Предварительная версия вышла 14 июня 2018 года.
5К открытий5К показов