🐍 TIL: в Python можно вручную разбудить lazy import — 27 мая 2026 г. в 16:00:06.555
🐍 TIL: в Python можно вручную разбудить lazy import Недавно в Python появились lazy imports — модуль не импортируется сразу, а загружается только тогда, когда он реально нужен. То есть: lazy import json не загружает json сразу в память. Вместо модуля вы получаете специальный объект-заглушку: globals()["json"] # <lazy_import 'json'> 👇 И тут есть неожиданный трюк. Оказывается, lazy import можно зарезолвить вручную: lazy import json resolved_json = globals()["json"].resolve() После этого: resolved_json.dumps({"x": 1}) будет работать как обычный модуль json. Что интересно — lazy import сам не исчезает: globals()["json"] # <lazy_import 'json'> То есть Python, вероятно, делает примерно следующее под капотом: globals()["json"] = globals()["json"].resolve() когда понимает, что модуль уже реально понадобился. Самый интересный вопрос здесь: что именно триггерит пробуждение lazy import? Скорее всего, это происходит через __getattribute__ / __getattr__, но сам механизм внутри выглядит довольно элегантно.

