Выбор ответа Junior Модули, пакеты и окружения спрашивают часто обновлено
Сколько раз выполняется код модуля
Вопрос
Модуль config импортируют из десяти разных файлов одного процесса. Сколько раз выполнится его код верхнего уровня?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Один раз: дальше модуль берётся из sys.modules. При первом импорте Python выполняет код модуля и кладёт объект в sys.modules.
Варианты ответа
- Десять раз, по разу на каждый
import - Ни разу, пока не обратились к атрибуту модуля
- Один раз: дальше модуль берётся из
sys.modulesправильный ответ - Зависит от того, абсолютный импорт или относительный
Разбор
При первом импорте Python выполняет код модуля и кладёт объект в sys.modules. Все следующие import просто возвращают этот объект. Поэтому модуль годится как простой синглтон. Ленивой загрузки по обращению к атрибуту по умолчанию нет, а вид импорта на кеширование не влияет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.