我创建了以下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”。这怎么可能?即使函数的源代码也没有变化,函数指针也没有改变。
编辑: 我认为这不是重复this问题。我不是在问如何重新加载功能。我想知道重新加载后如何更改源代码,Python仍然调用该函数的旧版本。