Я создал следующее file.py
def function():
print('Hello')
Я импортирую и вызываю эту функцию:
>>> from file import function
>>> function
<function function at 0x0000022BF425FB70>
>>> function()
Hello
Теперь я изменил функцию, чтобы вывести «Hello world» вместо «Hello»и перезагрузите файл снова:
>>> from file import function
>>> function
<function function at 0x0000022BF425FB70>
>>> function()
Hello
>>> import inspect
>>> inspect.getsource(function)
"def function():\n\tprint('Hello world')\n"
Что меня смущает, так это то, что новая функция фактически перезагружается (что мы видим из исходного кода функции в последней строке), но она по-прежнему печатает «Hello».Как это возможно?Также указатель на функцию не изменился, даже если изменился исходный код функции.
Редактировать: Я думаю, что это не дублирует этот вопрос.Я не спрашиваю, как перезагрузить функцию.Я спрашиваю, почему исходный код изменяется после перезагрузки, а Python по-прежнему вызывает старую версию функции.