При import код повторно не запускается
Код на python:
import time
import datetime
while True:
start = time.time()
time_start = datetime.datetime.now()
import file1
end = time.time() - start
print(time_start)
time.sleep(86400 - end)
Кто знает почему после прохождения задержки не срабатывает код из import file1, после задержки time.sleep(86400 - end) получаю только print(time_start)?
Если вместо импорта вставить прям весь код из файла file1, то все ок. Для примера привел импорт только одного файла, но у меня их много и код вставлять из каждого неудобно. Код в файлах не в классах
Ответы (1 шт):
Я знаю, почему не срабатывает. Потому что импорт осуществляется только один раз. Все импортированные модули хранятся в sys.modules, и если какой-то модуль уже был импортирован, то второго импорта не происходит.
Можно, конечно, использовать importlib.reload(module) (в питоне 2 просто reload()), но сама идея того, что программа основана на выполнении кода импортируемых модулей прямо во время импорта, мне кажется неправильной.