TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #5077 334
Ленивый импорт откладывает не только загрузку модуля

В Python 3.15 импорт можно отложить до первого обращения к имени. Это полезно для консольной утилиты, которая ради --help загружает тяжёлые зависимости.

# Python 3.15+
lazy import json

def parse(text):
return json.loads(text)


Но выполнение модуля тоже переносится. Если импорт регистрировал плагин, а к имени никто не обратился, регистрация не произойдёт. Ошибка загрузки также может возникнуть позже привычного места импорта.

В руководстве по ленивым импортам предлагают сначала измерить их стоимость через -X importtime, затем отложить только нужные зависимости.

Новый синтаксис не разбирается старыми версиями Python. Для совместимого кода есть __lazy_modules__: старые интерпретаторы игнорируют этот список и выполняют обычный импорт.

#python #производительность
  • ✍ 1
More from @zen_of_python
  1. Oct 17, 2026Одинаковые файлы, разные ZIP: почему меняется хеш Два архива распаковываются в одинаковые…
  2. Oct 17, 2026Что проверить при обновлении до Pydantic 2.14 Библиотека добавила поддержку Python 3.15 и…
  3. Oct 17, 2026Почему тесты находят пакет, который забыли положить в сборку При структуре, где пакет лежи…
  4. Oct 16, 2026UTF-8 по умолчанию не перекодирует старые файлы В Python 3.15 текстовый ввод-вывод по умол…
  5. Oct 16, 2026Как сделать бэкап работающей SQLite через Python Просто скопировать файл активной базы рис…
  6. Oct 16, 2026Python обработал 7,6 ГБ JSON за 0,12 секунды Здесь интересно, куда уходило время. Дэниел Л…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →