Что происходит во время импорта модуля / пакета

Может ли кто-нибудь помочь мне понять, что происходит за кулисами, когда я импортирую модуль в Python? Есть ли какие-либо накладные расходы на память или обработку, связанные с импортом? Или это больше похоже на открытие двери для расширения локального пространства имен? Мне не нужна конкретика, просто общее представление.

Я также надеюсь понять, что происходит при импорте полного пакета, когда нет __init__.py внутри папки пакета (я думаю, только Python 3+).

Кроме того, что меняется, когда этот пакет импортируется в модуль, который является частью импортируемого пакета? Автоматизирует ли Python__init__.pyв зависимости от того, куда импортируется пакет? Если он действительно делает что-то вроде этого, значит ли это, что на самом деле лучше избегать написания пакета__init__.py?

Основная причина, по которой я задаю эти вопросы, - это знать, что мне следует и что не следует делать при импорте. Кажется удобным просто импортировать пакет и использовать от него все, что я хочу, не беспокоясь о том, какие именно модули мне нужны. Но я не знаю, какое влияние окажет подобное действие.

Изменить: я просто хотел добавить важную деталь, что все мои модули уже загружены в память.

0 ответов

Другие вопросы по тегам