Розробники Python представили версію 3.7.0
Розробники Python представили версію 3.7.0
Опубліковано нову версію 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()
, який надає засоби для визначення класів даних, в яких застосовуються анотації змінних класу з автоматичною генерацією методів < code>__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 року.