Розробники 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 року.
