Zen of Python
Фотография
нажмите — покажем
нажмите — покажем
Ленивый импорт откладывает не только загрузку модуля
В Python 3.15 импорт можно отложить до первого обращения к имени. Это полезно для консольной утилиты, которая ради --help загружает тяжёлые зависимости.
# Python 3.15+
lazy import json
def parse(text):
return json.loads(text)
Но выполнение модуля тоже переносится. Если импорт регистрировал плагин, а к имени никто не обратился, регистрация не произойдёт. Ошибка загрузки также может возникнуть позже привычного места импорта.
В руководстве по ленивым импортам предлагают сначала измерить их стоимость через -X importtime, затем отложить только нужные зависимости.
Новый синтаксис не разбирается старыми версиями Python. Для совместимого кода есть __lazy_modules__: старые интерпретаторы игнорируют этот список и выполняют обычный импорт.
#python #производительность
✍1
5 · 642 ·