1、背景
a.py中import了b.py,但是當在程序執行過程中,b.py的內容發生了變化
此時由於import只生效一次的局限,導致a.py中使用到了b.py中的方法和變量都是舊的
所以需要在使用新的b.py內容的地方對b.py進行重新加載
2、解決方法
使用python的reload()方法
py2中reload是內置方法,直接使用
py3中需要from imp import reload進行使用
沒有重新加載b的情況:
import b def sayOld(): print b.name def changeB(): xxx # b文件被讀寫了,內容發生了變化 def sayNew(): print b.name sayOld() satNew() >>> old old
重新加載了b的情況:
import b import os,sys os.sys.path.append(os.path.dirname(__file__)) # 避免在被引用后找不到模塊,我們將模塊路徑加入到pythonpath中 def sayOld(): print b.name def changeB(): xxx # b文件被讀寫了,內容發生了變化 def sayNew(): reload(b) print b.name sayOld() satNew() >>> old new