У меня возникла проблема с перезагрузкой модулей, которые импортируются и используются в другом модуле. Для наглядности давайте рассмотрим пример, когда у меня есть два модуля:Как перезагрузить модуль, который импортируется в другие модули
Первый модуль: operation.py
def f(x,y):
return x+y
Второй модуль: test_operation.py
import operation
x=3
y=4
z= operation.f(x,y)
print z
Если я иду к переводчику и напишите:
import test_operation
Я получу 4 печатных (z = 4). Если изменить функцию п в первом модуле operation.py быть:
def f(x,y):
return x+y+1
, а затем я пишу в интерпретатор Reload (test_operation), я все еще получаю 4 печататься вместо 5. Это кажется то, что оно перезагружает модуль test_operation.py, но не перезагружает модуль operation.py, который импортируется в test_operation.py.
Как решить такую проблему? и В общем случае, как я могу убедиться, что все импортированные модули в моем коде повторно импортируются (или перезагружаются) каждый раз, когда они меняются?
используйте 'reload (operation)', затем 'reload (test_operation)'. – Uriel
вы перезагружаете уже импортированный модуль в память после изменения в операции.py не новый с вашим редактированием –
Я понимаю, что я могу перезагрузить модули один за другим вручную, но есть ли более автоматический метод, который перезагружает модуль и все его импортированные модули, и идет так рекурсивно? Есть ли глубокая перезагрузка (например, есть копия и глубокая копия)? –