Вам когда-нибудь приходилось перемещать import в тело функции, чтобы ускорить запуск приложения? В Python 3.15 планируется новый механизм: ленивые импорты.
PEP 810, одобренный в конце 2025, добавляет ключевое слово lazy для совместного использования с import. Идея проста: модуль не загружается до тех пор, пока к нему не происходит первое обращение. Возможные ошибки импортов также показываются только после первого обращения, не при старте приложения. Важно отметить, что лениво импортируются только те модули, которые явно отмечены словом lazy, это не распространяется на импорты внутри них автоматически.
Все не ограничивается одним словом lazy для тех, кому нужно больше контроля. PEP 810 добавляет несколько новых функций в модуль sys. Используя их, вы сможете включать и выключать ленивые импорты для всего процесса; проверять текущий режим работы ленивых импортов (all, normal, none); задавать фильтр, определяющий, какие модули должны всегда загружаться сразу.
Кстати, это не первая попытка добавить ленивую загрузку в Python. PEP 690 предлагал неявный, глобальный подход к внедрению такого механизма. Это вызвало озабоченность высокой сложностью и рисками разделения экосистемы языка между “ленивым" и “нормальным” подходами. PEP 810 представляет собой компромиссный вариант, опирающийся на явный синтаксис и более понятную реализацию.
Пока Python 3.15 еще не вышел, вы уже можете попробовать эталонную реализацию, которая сейчас активно обсуждается в открытом PR. Релиз Python 3.15 запланирован на 1 октября 2026.
· 18.02
Вместо ленивых импортов понятнее разместить из внутри функции. Приходилось так делать, грешен
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён