Подтвердить что ты не робот

Когда код в __init__.py запускается?

Я прочитал документацию, и есть кое-что, о чем я до сих пор не уверен. Все ли инициализирующий код для всего модуля в __init__.py запускается, если я делаю:

from mymodule import mything

или только если я делаю

import mymodule

Что запускается с __init__.py и когда он запускается?

Я уверен, что я мог бы также проверить это довольно легко, но для потомства и полезности для других, я думал, что попрошу здесь.

4b9b3361

Ответ 1

Код в __init__.py запускается всякий раз, когда вы импортируете что-либо из пакета. Это включает импорт других модулей в этот пакет.

Стиль импорта (import packagename или from packagename import some_name) здесь не имеет значения.

Как и все модули, код запускается только один раз и вводится в sys.modules под именем пакета.