欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

跟老齊學(xué)Python之模塊的加載

系統(tǒng) 1825 0

不管是用import還是用from mmmm import *的方式導(dǎo)入模塊,當(dāng)程序運(yùn)行之后,回頭在看那個(gè)存儲(chǔ)著mmmm.py文件的目錄中(關(guān)于mmmm.py文件可以看上一講),多了一個(gè)文件:

          
            
              
qw
              
                @qw
              
              -
              
                Latitude
              
              -
              
                E4300
              
              
                :~/Documents/ITArticles/BasicPython/codes
              
              
                $ 
              
              ls mmm*
mmmm.py mmmm.pyc
            
在這個(gè)目錄下面,除了原來(lái)的那個(gè)mmmm.py之外,又多了一個(gè)mmmm.pyc文件,這個(gè)文件不是我寫(xiě)的,是哪里來(lái)的呢?

要破開(kāi)此迷,需要用import的過(guò)程說(shuō)起。

import的工作流程

import mmmm,并不是僅僅將mmmm.py這個(gè)文件裝載到當(dāng)前位置(文件內(nèi)),其實(shí)是首先進(jìn)行了一次運(yùn)算。當(dāng)mmmm.py被第一次導(dǎo)入的時(shí)候,python首先要對(duì)其進(jìn)行編譯,生成擴(kuò)展名為.pyc的同名文件,然后才執(zhí)行mmmm模塊的代碼,創(chuàng)建相應(yīng)的對(duì)象等。就如同把大象裝進(jìn)冰箱,有三步要執(zhí)行:

搜索。就是python要能夠找到import的模塊。怎么找到,后面講述。編譯。找到模塊文件之后,將其編譯成字節(jié)碼,就是那個(gè).pyc文件里面的(關(guān)于字節(jié)碼,下面會(huì)介紹,請(qǐng)繼續(xù)閱讀)。注意,不是什么時(shí)候都編譯的,只有第一次運(yùn)行時(shí)候才編譯,如果mmmm.py文件改變了,相當(dāng)于又一個(gè)新文件,也會(huì)從新編譯。其實(shí)就是.pyc文件中有一個(gè)時(shí)間戳,python會(huì)自動(dòng)檢查這個(gè)時(shí)間戳,如果它比同名的.py文件時(shí)間戳舊,就會(huì)從新編譯。否則跳過(guò)。當(dāng)然,如果根本就沒(méi)有找到同名的.py源文件,只有字節(jié)碼文件.pyc,那么就只能運(yùn)行這個(gè)了。運(yùn)行。這就沒(méi)什么好說(shuō)的了,生米已經(jīng)淘干凈了,并且放到鍋里,開(kāi)始加熱了,最后就只能熟飯了。執(zhí)行就是前面已經(jīng)編譯的模塊字節(jié)碼文件,順理成章要執(zhí)行了。搜索模塊

一般情況下,python會(huì)自動(dòng)的完成模塊搜索過(guò)程。但是,在某些情況下,或許會(huì)要求程序員來(lái)設(shè)定搜索路徑。當(dāng)import一個(gè)模塊后,python會(huì)按照下面的順序來(lái)找那個(gè)將要導(dǎo)入的模塊文件

程序的主目錄。上一講中,在codes這個(gè)目錄中運(yùn)行交互模式,這時(shí)候的主目錄就是codes,當(dāng)在那個(gè)交互模式中運(yùn)行import mmmm的時(shí)候,就首先在codes這個(gè)目錄中搜索相應(yīng)的文件(找到.py之后編譯成為.pyc)。當(dāng)然,后面在網(wǎng)頁(yè)編程中,看官會(huì)看到,所謂主目錄是可以通過(guò)頂層文件設(shè)置的目錄。PYTHONPATH目錄。這是一個(gè)環(huán)境變量設(shè)置,如果沒(méi)有設(shè)置則濾去。如何進(jìn)行環(huán)境變量設(shè)置,請(qǐng)看官google啦。標(biāo)準(zhǔn)庫(kù)目錄。已經(jīng)隨著Python的安裝進(jìn)入到計(jì)算機(jī)中的那個(gè)。任何.pth文件的內(nèi)容。如果有這類文件,最后要在這類文件中搜索一下。這是一個(gè)簡(jiǎn)單的方法,在.pth文件中,加入有效目錄,使之成為搜索路徑。下圖就是我的計(jì)算機(jī)上,存放.pth文件的位置以及里面放著的.pth文件

看官也可以自己編寫(xiě).pth文件,里面是有關(guān)搜索目錄,保存到這里。比如,打開(kāi)目錄中的easy-install.pth文件,發(fā)現(xiàn)的內(nèi)容:

搜索就是這么一個(gè)過(guò)程。這里建議看官了解即可,不一定非要進(jìn)行什么設(shè)置,在很多情況下,python都是會(huì)自動(dòng)完成的。特別是初學(xué)者,暫且不要輕舉妄動(dòng)。

重載模塊

以mmmm模塊為例(在這里要特別提醒看官:我這樣命名是相當(dāng)不好滴,只不過(guò)是為了惡搞才這樣命名的)。

在一個(gè)shell里面,運(yùn)行了python,并且做了如下操作:

          
            >>> import mmmm
            
>>> mmmm.web
'https://qiwsir.github.io'

下面我再打開(kāi)一個(gè)shell,編輯mmmm.py這個(gè)文件,進(jìn)行適當(dāng)修改:

跟老齊學(xué)Python之模塊的加載_第1張圖片

保存之后,切換到原來(lái)的那個(gè)導(dǎo)入了模塊的交互模式:

          
            >>> mmmm.web
            
'https://qiwsir.github.io'

輸出的跟前面的一樣,沒(méi)有任何變化,這是為什么呢?

原來(lái),當(dāng)導(dǎo)入模塊的時(shí)候,只會(huì)在第一次導(dǎo)入時(shí)加載和執(zhí)行模塊代碼,之后就不會(huì)重新加載或重新執(zhí)行了,如果模塊代碼修改了,但是這里執(zhí)行的還是修改之前的。

怎么實(shí)現(xiàn)代碼修改之后,執(zhí)行新的呢?一種方式就是退出原來(lái)的交互模式,再重新進(jìn)入,再import mmmm。呵呵,這種方法有點(diǎn)麻煩。Python提供了另外一個(gè)函數(shù)――reload函數(shù),能夠?qū)崿F(xiàn)模塊的重新加載(簡(jiǎn)稱重載),重載后模塊代碼重新執(zhí)行。如下繼續(xù):

          
            >>> reload(mmmm)
            

>>> mmmm.web
'https://qiwsir.github.io, I am writing a python book on line.'

這下就顯示修改之后的內(nèi)容了。

特別提醒注意:

reload是內(nèi)置函數(shù)reload(module),module是一個(gè)已經(jīng)存在的模塊,不是變量名。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 天天摸天天操免费播放小视频 | 免费观看一级欧美在线视频 | 91尤物国产尤物福利 | 五月天激激婷婷大综合丁香 | 婷婷色香五月激情综合2020 | 久久亚洲一级毛片 | 国产色 | 精品一区二区三区四区五区 | 日本久久久久久 | 91在线视频免费观看 | 国产高清视频在线 | 色免费看| a天堂在线| 波多野结衣手机在线播放 | 一级片国语 | 三级特黄视频 | 视频三区 | 亚洲一区视频在线 | 日韩黄色网 | www久久爱| 成人免费黄色 | 五月天婷婷精品视频 | 亚洲综合精品一区二区三区中文 | 精品国产青草久久久久福利 | 亚洲一区二区三区影院 | 99精品在线观看 | 国产亚洲欧美日本一二三本道 | 久久涩综合 | 久久er精品视频 | 亚洲在线播放 | 久久午夜影院 | 李飞| 99视频久久精品久久 | www午夜视频 | 奇米影视四色中文字幕 | 无遮挡又黄又爽又色的动态图1000 | 天天干天天在线 | 黄色免费网页 | 99精品久久 | 成人黄色在线视频 | 青青草国产 |