Python如何重新加載模塊
問題
你想重新加載已經(jīng)加載的模塊,因?yàn)槟銓ζ湓创a進(jìn)行了修改。
解決方案
使用imp.reload()來重新加載先前加載的模塊。舉個(gè)例子:
>>> import spam >>> import imp >>> imp.reload(spam) <module 'spam' from './spam.py'> >>>
討論
重新加載模塊在開發(fā)和調(diào)試過程中常常很有用。但在生產(chǎn)環(huán)境中的代碼使用會(huì)不安全,因?yàn)樗⒉豢偸窍衲谕哪菢庸ぷ鳌?/p>
reload()擦除了模塊底層字典的內(nèi)容,并通過重新執(zhí)行模塊的源代碼來刷新它。模塊對象本身的身份保持不變。因此,該操作在程序中所有已經(jīng)被導(dǎo)入了的地方更新了模塊。
盡管如此,reload()沒有更新像”from module import name”這樣使用import語句導(dǎo)入的定義。舉個(gè)例子:
# spam.py
def bar():
print('bar')
def grok():
print('grok')
現(xiàn)在啟動(dòng)交互式會(huì)話:
>>> import spam >>> from spam import grok >>> spam.bar() bar >>> grok() grok >>>
不退出Python修改spam.py的源碼,將grok()函數(shù)改成這樣:
def grok():
print('New grok')
現(xiàn)在回到交互式會(huì)話,重新加載模塊,嘗試下這個(gè)實(shí)驗(yàn):
>>> import imp >>> imp.reload(spam) <module 'spam' from './spam.py'> >>> spam.bar() bar >>> grok() # Notice old output grok >>> spam.grok() # Notice new output New grok >>>
在這個(gè)例子中,你看到有2個(gè)版本的grok()函數(shù)被加載。通常來說,這不是你想要的,而是令人頭疼的事。
因此,在生產(chǎn)環(huán)境中可能需要避免重新加載模塊。在交互環(huán)境下調(diào)試,解釋程序并試圖弄懂它。
以上就是Python如何重新加載模塊的詳細(xì)內(nèi)容,更多關(guān)于Python重寫加載模塊的資料請關(guān)注腳本之家其它相關(guān)文章!
- Python動(dòng)態(tài)加載模塊的3種方法
- Python實(shí)現(xiàn)動(dòng)態(tài)加載模塊、類、函數(shù)的方法分析
- 跟老齊學(xué)Python之模塊的加載
- Python重新加載模塊的實(shí)現(xiàn)方法
- Python模塊的加載講解
- Python自動(dòng)重新加載模塊詳解(autoreload module)
- Python之inspect模塊實(shí)現(xiàn)獲取加載模塊路徑的方法
- Python新手如何理解循環(huán)加載模塊
- Python 關(guān)于模塊和加載模塊的實(shí)現(xiàn)
- 簡單談?wù)凱ython中的模塊導(dǎo)入
相關(guān)文章
python多進(jìn)程下實(shí)現(xiàn)日志記錄按時(shí)間分割
這篇文章主要為大家詳細(xì)介紹了python多進(jìn)程下實(shí)現(xiàn)日志記錄按時(shí)間分割,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
深入挖掘Python自定義加密算法的設(shè)計(jì)與實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了Python中自定義加密算法的設(shè)計(jì)與實(shí)現(xiàn)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-12-12
python tkinter實(shí)現(xiàn)彩球碰撞屏保
這篇文章主要為大家詳細(xì)介紹了python tkinter實(shí)現(xiàn)彩球碰撞屏保,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
python pexpect ssh 遠(yuǎn)程登錄服務(wù)器的方法
今天小編就為大家分享一篇python pexpect ssh 遠(yuǎn)程登錄服務(wù)器的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02

