Пусть в файле my_module.py написано определение класса:
class A: ...
Пишем такой код в другом файле:
from my_module import A a = A() from my_module import A print(isinstance(a, A))
Ответ – True. Система модулей Python только единожды будет запускать каждый импорируемый файл. Второй import
не возымеет действия, и класс А
будет тем же, что и был раньше.
Бонус: если вам нужно принудительно перезагрузить модуль – воспользуйтесь функцией reload из importlib
. Попробуем. В файл mymodule.py
напишем:
class A: # будем видеть, когда класс загружен print('loaded class A')
В другой файле:
from importlib import reload import mymodule a = my_module.A() mymodule = reload(mymodule) print(isinstance(a, mymodule.A))
Вывод программы:
loaded class A loaded class A False
Специально для канала @pyway. Подписывайтесь на мой канал в Телеграм @pyway 👈