reload() 簡(jiǎn)介
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)提供從項(xiàng)目策劃、軟件開發(fā),軟件安全維護(hù)、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評(píng)估等整套的建站服務(wù),主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站制作,App定制開發(fā)以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。創(chuàng)新互聯(lián)深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!作用:用于重新載入之前載入的模塊
語(yǔ)法格式:reload(module)
參數(shù):module為模塊對(duì)象,必須已經(jīng)被加載
返回值:返回模塊對(duì)象
注意事項(xiàng):
多次重復(fù)使用import語(yǔ)句時(shí),不會(huì)重新加載被指定的模塊,只是把對(duì)該模塊的內(nèi)存地址給引用到本地變量環(huán)境。
reload()會(huì)重新加載已加載的模塊,重新編譯模塊,重新執(zhí)行模塊級(jí)代碼,但是__init__函數(shù)不再重復(fù)執(zhí)行,原來(lái)已經(jīng)使用的實(shí)例還是會(huì)使用舊的模塊,而新生產(chǎn)的實(shí)例會(huì)使用新的模塊;reload后還是用原來(lái)的內(nèi)存地址;不支持from ... import ...格式的模塊進(jìn)行重新加載。
大部分模塊設(shè)計(jì)為只加載一次,重新加載可能導(dǎo)致一些問(wèn)題,因此,慎用reload()。
使用sys.modules可查看已加載的模塊。
Python2
在Python2中,reload()為內(nèi)置函數(shù)。
例:重設(shè)字符編碼
>>>import sys >>> sys.getdefaultencoding() # 當(dāng)前默認(rèn)編碼 'ascii' >>> reload(sys) # 使用 reload>>> sys.setdefaultencoding('utf8') # 設(shè)置編碼 >>> sys.getdefaultencoding() 'utf8' >>>