import
загружает соответствующий файл .py
, .pyc
или .pyo
, создает объект модуля и сохраняет его со своим полностью определенным ("точечным") именем в словаре sys.modules
.Если секунда import
найдет модуль для импорта в этом словаре, он вернет его без повторной загрузки файла.
Чтобы ответить на ваши вопросы:
При импорте модуля, а затем снова импортируйте его, будет ли он повторно импортирован / перезаписан или пропущен?
Он будет пропущен.Чтобы явно повторно импортировать модуль, используйте встроенную функцию reload()
.
Когда вы импортируете модуль "a" и "b", но также имеете модуль "b", импортированный в модуль "a ", что происходит?
import a
загрузит a
из a.py[c]
, import b
вернет модуль sys.modules['b']
, уже загруженный a
.
Безопасно ли это делать?
Да, абсолютно.
Например, если в модуле "b" создан экземпляр класса, выв конечном итоге создать его дважды?
Нет.