这个问题已经被问过很多次了,这里有几个可供参考:
Reimport a module while interactive
Proper way to reload a python module from the console
How to reload a module's function in Python?
根据我的搜索和学习,我写了以下内容,但它无法正确重新加载模块:
import pandas as pd pd.get_option('display.width') # 80 pd.set_option("display.width", 150) del pd import importlib import sys pd = importlib.reload(sys.modules['pandas']) pd.get_option('display.width') # 150
在这种情况下,您的模块(pandas)实际上是重新加载的,但是 importlib.reload 它不会清除模块级变量的内存,只是重新执行模块代码。现在,重新加载后模块变量的值取决于它的初始化方式。如果你像这样定义你的模块m.py
importlib.reload
x = 0 try: y except NameError: y = 0
你可以看到行为上的差异:
>>> import importlib >>> import m >>> m.x 0 >>> m.y 0 >>> m.x = 1 >>> m.y = 1 >>> _ = importlib.reload(m) >>> m.x 0 >>> m.y 1