Python 模块重新加载后的反射
Python reflection after module reloading
我试图在重新加载后反映一个模块。每次更改模块时,我都需要反映它以查看其当前状态。问题是它会记住所有以前的状态。这是我的代码。
main.py
from tkinter import *
from importlib import reload
def fun():
import second
reload(second)
print(dir(second))
root=Tk()
Button(root,text='reload',command=fun).pack()
root.mainloop()
second.py
var1='hello'
例如,当我将 'second.py' 中的变量名从 'var1' 更改为 'var2' 时,它会打印变量 'var1' 和 'var2'。
我只需要最新版本的模块(仅'var2')。
感谢帮助
importlib.reload
updates the module's global namespace, i.e. it retains the old name bindings. If you want a fresh module object, you can remove the old one from sys.modules
导入前:
def fun():
sys.modules.pop('second', None)
import second
...
我试图在重新加载后反映一个模块。每次更改模块时,我都需要反映它以查看其当前状态。问题是它会记住所有以前的状态。这是我的代码。
main.py
from tkinter import *
from importlib import reload
def fun():
import second
reload(second)
print(dir(second))
root=Tk()
Button(root,text='reload',command=fun).pack()
root.mainloop()
second.py
var1='hello'
例如,当我将 'second.py' 中的变量名从 'var1' 更改为 'var2' 时,它会打印变量 'var1' 和 'var2'。 我只需要最新版本的模块(仅'var2')。
感谢帮助
importlib.reload
updates the module's global namespace, i.e. it retains the old name bindings. If you want a fresh module object, you can remove the old one from sys.modules
导入前:
def fun():
sys.modules.pop('second', None)
import second
...