Zen of Python
Фотография
нажмите — покажем
нажмите — покажем
Как вручную разрешить ленивый импорт в Python
У объекта, созданного через lazy import json, есть метод resolve(). Его можно обнаружить с помощью dir(globals()["json"]), а справка поясняет: метод разрешает ленивый импорт и возвращает настоящий объект модуля.
Вызов globals()["json"].resolve() возвращает модуль json, но имя в глобальном пространстве по-прежнему указывает на объект lazy_import. Автор предполагает, что при автоматическом разрешении Python вызывает тот же метод, а затем присваивает имени полученный модуль.
В этот раз «явное лучше неявного» можно понимать буквально. В разборе показано, как исследовать этот механизм через dir() и help(); открытым остаётся вопрос, что именно запускает автоматическое разрешение импорта.
5 · 1.2K ·