Выбор ответа Middle Модули, пакеты и окружения обновлено
Нужен ли __init__.py
Вопрос
Что будет, если в каталоге с модулями нет __init__.py?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Каталог импортируется как namespace-пакет. С Python 3.3 каталог без init.py становится пакетом пространства имён, который может даже собираться из нескольких каталогов на sys.path.
Варианты ответа
- Модули из каталога импортировать невозможно
- Python создаст
__init__.pyавтоматически - Каталог импортируется как namespace-пакетправильный ответ
- Импорт сработает только через
importlib
Разбор
С Python 3.3 каталог без __init__.py становится пакетом пространства имён, который может даже собираться из нескольких каталогов на sys.path. Обычный пакет с __init__.py всё равно рекомендуют для своего кода: явная граница пакета, код инициализации, корректная работа части инструментов. Python ничего не создаёт сам.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.