[轉]python3中reload()


python3.0中重載模塊

  在python中,每一個以 .py結尾的Python文件都是一個模塊。其他的文件可以通過導入一個模塊來讀取該模塊的內容。導入從本質上來講,就是載入另一個文件,並能夠讀取那個文件的內容。一個模塊的內容通過這樣的屬性能夠被外部世界使用。

  這種基於模塊的方式使模塊變成了Python程序架構的一個核心概念。更大的程序往往以多個模塊文件的形式出現,並且導入了其他模塊文件的工具。其中的一個模塊文件被設計成主文件,或叫做頂層文件(就是那個啟動后能夠運行整個程序的文件)。

  默認情況下,模塊在第一次被導入之后,其他的導入都不再有效。如果此時在另一個窗口中改變並保存了模塊的源代碼文件,也無法更新該模塊。這樣設計的原因在於,導入是一個開銷很大的操作(導入必須找到文件,將其編譯成字節碼,並且運行代碼),以至於每個文件、每個程序運行不能夠重復多於一次。

  那么想要使得Python在同一次會話中再次運行文件,該怎么辦呢?這就需要調用imp標准庫模塊中的reload函數。如下所示

 

 from imp import reload reload(MyModule)

  

  這樣就可以重新裝載MyModule模塊,使得修改有效。

  注意:reload函數希望獲得的參數是一個已經加載了的模塊對象的名稱,所以如果在重載之前,請確保已經成功地導入了這個模塊。

  說明:Python 3.0把reload內置函數移到了imp標准庫模塊中。它仍然像以前一樣重載文件,但是,必須導入它才能使用。在Python 3.0中,運行import imp並使用imp.reload(M),或者像上面所示的,運行from imp import並使用reload(M)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM