Выбор ответа Senior Модули, пакеты и окружения обновлено
Порядок поиска при импорте
Вопрос
Что Python проверяет первым при import json?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: sys.modules, кеш загруженных модулей. Сначала проверяется sys.modules: если модуль уже загружен, его объект возвращается сразу.
Варианты ответа
- Каталог текущего скрипта, он первый в
sys.path site-packagesтекущего окруженияsys.modules, кеш загруженных модулейправильный ответ- Переменную
PYTHONPATH, она важнее всего
Разбор
Сначала проверяется sys.modules: если модуль уже загружен, его объект возвращается сразу. Если нет, по очереди спрашиваются искатели из sys.meta_path: встроенные модули, замороженные, затем поиск по путям sys.path (каталог скрипта, PYTHONPATH, стандартная библиотека, site-packages). Подмена модуля в sys.modules поэтому работает и для моков в тестах.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.