Я бегу python 3.6.4
(анаконда, спайдер).
Нужно ли перезагрузить пользовательский модуль, чтобы зафиксировать изменения?
Например, предположим, что я написал простую функцию и сохранил ее в test.py
файле:
def plus5(x):
return x + 5
Затем в IPython
консоли я набираю
import test as t
и затем я изменяю пользовательскую функцию на:
def plus5(x):
return x + 500
Затем, когда я набираю IPython
console
t.plus5(0) it returns 500 without re-import
или перезагрузите модуль первым.
Если я изменю имя функции с «плюс5» на другое, то мне придется повторно импортировать модуль, чтобы увидеть это изменение. Но когда я изменяю операторы функции, он автоматически фиксирует изменения без повторного импорта модуля
Из документации по Python: «Примечание. Из соображений эффективности каждый модуль импортируется только один раз за сеанс интерпретатора. Поэтому, если вы меняете свои модули, вы должны перезапустить интерпретатор - или, если это только один модуль, который вы хотите протестировать в интерактивном режиме, используйте importlib.reload()
,
например. import importlib; importlib.reload(modulename)
".