python重载模块_Python 3.0中重载模块
在Python中,每一個(gè)以 .py結(jié)尾的Python文件都是一個(gè)模塊。其他的文件可以通過(guò)導(dǎo)入一個(gè)模塊來(lái)讀取該模塊的內(nèi)容。導(dǎo)入從本質(zhì)上來(lái)講,就是載入另一個(gè)文件,并能夠讀取那個(gè)文件的內(nèi)容。一個(gè)模塊的內(nèi)容通過(guò)這樣的屬性能夠被外部世界使用。
這種基于模塊的方式使模塊變成了Python程序架構(gòu)的一個(gè)核心概念。更大的程序往往以多個(gè)模塊文件的形式出現(xiàn),并且導(dǎo)入了其他模塊文件的工具。其中的一個(gè)模塊文件被設(shè)計(jì)成主文件,或叫做頂層文件(就是那個(gè)啟動(dòng)后能夠運(yùn)行整個(gè)程序的文件)。
默認(rèn)情況下,模塊在第一次被導(dǎo)入之后,其他的導(dǎo)入都不再有效。如果此時(shí)在另一個(gè)窗口中改變并保存了模塊的源代碼文件,也無(wú)法更新該模塊。這樣設(shè)計(jì)的原因在于,導(dǎo)入是一個(gè)開(kāi)銷(xiāo)很大的操作(導(dǎo)入必須找到文件,將其編譯成字節(jié)碼,并且運(yùn)行代碼),以至于每個(gè)文件、每個(gè)程序運(yùn)行不能夠重復(fù)多于一次。
那么想要使得Python在同一次會(huì)話(huà)中再次運(yùn)行文件,該怎么辦呢?這就需要調(diào)用imp標(biāo)準(zhǔn)庫(kù)模塊中的reload函數(shù)。如下所示
Python代碼
from imp import reload
reload(MyModule)
from imp import reload
reload(MyModule) 這樣就可以重新裝載MyModule模塊,使得修改有效。
注意:reload函數(shù)希望獲得的參數(shù)是一個(gè)已經(jīng)加載了的模塊對(duì)象的名稱(chēng),所以如果在重載之前,請(qǐng)確保已經(jīng)成功地導(dǎo)入了這個(gè)模塊。
說(shuō)明:Python 3.0把reload內(nèi)置函數(shù)移到了imp標(biāo)準(zhǔn)庫(kù)模塊中。它仍然像以前一樣重載文件,但是,必須導(dǎo)入它才能使用。在Python 3.0中,運(yùn)行import imp并使用imp.reload(M),或者像上面所示的,運(yùn)行from imp import并使用reload(M)。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的python重载模块_Python 3.0中重载模块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 写python笔记本推荐_写个pytho
- 下一篇: 手机怎么能把书签导出来_成人高考能在手机