Python 3.7

Нові можливості:

Можливість

Статус

PEP 538

Приведення застарілої локалі C до локалі на основі UTF-8

PEP 539

Новий C API для локального зберігання потоків у CPython

PEP 540

Режим UTF-8

PEP 552

Детермінований pyc

PEP 553

Вбудований breakpoint()

PEP 557

Класи даних

PEP 560

Основна підтримка модуля typing та узагальнених типів

PEP 562

__getattr__ та __dir__ для модулів

Частково

PEP 563

Відкладене обчислення анотацій

PEP 564

Часові функції з нано секундною роздільною здатністю

Частково [1]

PEP 565

Показ DeprecationWarning в __main__

PEP 567

Контекстні змінні

Інші зміни мови:

async та await тепер є зарезервованими ключовими словами

Реалізовано

Об’єкти dict мають зберігати порядок вставки

Тепер можна передавати більше 255 аргументів у функцію; функція тепер може мати більше 255 параметрів

bytes.fromhex() та bytearray.fromhex() тепер ігнорують усі пробіли ASCII, а не лише пробіли

str, bytes та bytearray отримали підтримку нового методу isascii(), який дозволяє перевірити, чи містить рядок або байти лише символи ASCII

ImportError тепер відображає назву модуля та шлях __file__ модуля при невдачі from ... import ...

Тепер підтримуються кругові імпорти, що включають абсолютні імпорти із прив’язкою підмодуля до імені

object.__format__(x, '') тепер еквівалентно str(x), а не format(str(self), '')

Для кращої підтримки динамічного створення трасувань стеку, types.TracebackType тепер можна інстанціювати з коду Python, а атрибут tb_next трасувань тепер доступний для запису

При використанні перемикача -m, sys.path[0] тепер одразу розгортається до повного шляху початкового каталогу, а не залишається порожнім каталогом (що дозволяє імпорт з поточного робочого каталогу на момент виконання імпорту)

Нова опція -X importtime або змінна середовища PYTHONPROFILEIMPORTTIME дозволяє відображати час завантаження кожного модуля

Зміни у вбудованих модулях:

asyncio

Занадто багато, щоб перелічити

gc

Нові можливості включають gc.freeze(), gc.unfreeze(), gc-get_freeze_count

math

Додано math.remainder() для реалізації залишку в стилі IEEE 754

re

Ряд вдосконалень, включаючи кращу підтримку розбиття за порожніми рядками та підтримку копіювання скомпільованих виразів і об’єктів Match

sys

Додано sys.breakpointhook(). Додано sys.get(/set)_coroutine_origin_tracking_depth()

time

Здебільшого оновлення для підтримки наносекундної роздільної здатності в PEP564, дивіться вище

Примітки