reload() 簡介
作用:用于重新載入之前載入的模塊
語法格式:reload(module)
參數:module為模塊對象,必須已經被加載
返回值:返回模塊對象
注意事項:
多次重復使用import語句時,不會重新加載被指定的模塊,只是把對該模塊的內存地址給引用到本地變量環境。
reload()會重新加載已加載的模塊,重新編譯模塊,重新執行模塊級代碼,但是__init__函數不再重復執行,原來已經使用的實例還是會使用舊的模塊,而新生產的實例會使用新的模塊;reload后還是用原來的內存地址;不支持from ... import ...格式的模塊進行重新加載。
大部分模塊設計為只加載一次,重新加載可能導致一些問題,因此,慎用reload()。
使用sys.modules可查看已加載的模塊。
Python2
在Python2中,reload()為內置函數。
例:重設字符編碼
>>>import sys >>> sys.getdefaultencoding() # 當前默認編碼 'ascii' >>> reload(sys) # 使用 reload>>> sys.setdefaultencoding('utf8') # 設置編碼 >>> sys.getdefaultencoding() 'utf8' >>>
Python3
在Python3中,reload()被轉移到imp模塊以及importlib模塊中。
Python3.4之前在imp中,Python3.4之后imp模塊逐步被廢棄,reload()移至importlib模塊中。
>>> import sys >>> reload(sys) Traceback (most recent call last): File "", line 1, in NameError: name 'reload' is not defined >>> from imp import reload __main__:1: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses >>> reload(sys) >>> from importlib import reload >>> reload(sys)
以上這篇基于Python2、Python3中reload()的不同用法介紹就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
