Выбор ответа Middle Модули, пакеты и окружения обновлено

Нужен ли __init__.py

Вопрос

Что будет, если в каталоге с модулями нет __init__.py?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Каталог импортируется как namespace-пакет. С Python 3.3 каталог без init.py становится пакетом пространства имён, который может даже собираться из нескольких каталогов на sys.path.

Варианты ответа

  1. Модули из каталога импортировать невозможно
  2. Python создаст __init__.py автоматически
  3. Каталог импортируется как namespace-пакетправильный ответ
  4. Импорт сработает только через importlib

Разбор

С Python 3.3 каталог без __init__.py становится пакетом пространства имён, который может даже собираться из нескольких каталогов на sys.path. Обычный пакет с __init__.py всё равно рекомендуют для своего кода: явная граница пакета, код инициализации, корректная работа части инструментов. Python ничего не создаёт сам.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме