最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pyhton中__pycache__文件夾的產(chǎn)生與作用詳解

 更新時(shí)間:2019年11月24日 08:34:54   作者:殘劍  
這篇文章主要介紹了pyhton中__pycache__文件夾的產(chǎn)生與作用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

用python編寫了一個(gè)工程,但在第一次運(yùn)行后,發(fā)現(xiàn)工程根目錄下生成了一個(gè)__pycache__文件夾,里面是和py文件同名的各種以.cpython-35.pyc結(jié)尾的文件。cpython-35各項(xiàng)意義,cpython代表的是c語(yǔ)言實(shí)現(xiàn)的Python解釋器,-35代表的是3.5版本。至于pyc,需要先了解一下模塊的調(diào)用。

模塊的調(diào)用

Python導(dǎo)入模塊時(shí),實(shí)際上會(huì)把被導(dǎo)入的模塊執(zhí)行一遍。例如調(diào)用test.py模塊:

def haha():
  print("haha")

haha()

主程序main.py:

import test

print("good")

執(zhí)行結(jié)果:

haha
good

如何才能只是單純調(diào)用而不執(zhí)行被調(diào)用模塊的代碼呢?要想被調(diào)用模塊代碼不被執(zhí)行,可以使用__name__。如果不涉及模塊導(dǎo)入,__name__的值就是__main__,如果模塊被導(dǎo)入引用的話,那么這個(gè)模塊內(nèi)的__name__值就是文件的名字(不帶.py),例如test.py:

def haha():
  print("haha")

haha()
print(__name__)

執(zhí)行結(jié)果為:

haha
__main__

如果test被導(dǎo)入引用的話,例如test2:

import test

print("good")

運(yùn)行結(jié)果為:

haha
test
good

在被調(diào)用的模塊中,可執(zhí)行代碼前加上if __name__ == '__main__':這么一句判斷,被調(diào)用的模塊的代碼就不會(huì)被執(zhí)行。

由來(lái)

Python程序運(yùn)行時(shí)不需要編譯成二進(jìn)制代碼,而直接從源碼運(yùn)行程序。簡(jiǎn)單來(lái)說(shuō)是,Python解釋器將源碼轉(zhuǎn)換為字節(jié)碼,然后再由解釋器來(lái)執(zhí)行這些字節(jié)碼。

解釋器的具體工作:

1、完成模塊的加載和鏈接;
2、將源代碼編譯為PyCodeObject對(duì)象(即字節(jié)碼),寫入內(nèi)存中,供CPU讀?。?br /> 3、從內(nèi)存中讀取并執(zhí)行,結(jié)束后將PyCodeObject寫回硬盤當(dāng)中,也就是復(fù)制到.pyc或.pyo文件中,以保存當(dāng)前目錄下所有腳本的字節(jié)碼文件。

之后若再次執(zhí)行該腳本,它先檢查【本地是否有上述字節(jié)碼文件】和【該字節(jié)碼文件的修改時(shí)間是否在其源文件之后】,是就直接執(zhí)行,否則重復(fù)上述步驟。

第一次執(zhí)行代碼的時(shí)候,Python解釋器已經(jīng)把編譯的字節(jié)碼放在__pycache__文件夾中,這樣以后再次運(yùn)行的話,如果被調(diào)用的模塊未發(fā)生改變,那就直接跳過(guò)編譯這一步,直接去__pycache__文件夾中去運(yùn)行相關(guān)的*.pyc文件,大大縮短了項(xiàng)目運(yùn)行前的準(zhǔn)備時(shí)間。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

遵义市| 蒙山县| 称多县| 米林县| 昌黎县| 来安县| 西城区| 长葛市| 逊克县| 定安县| 改则县| 武乡县| 武胜县| 宁河县| 衢州市| 萍乡市| 彩票| 丰城市| 海南省| 长寿区| 永登县| 常山县| 高淳县| 济源市| 岳池县| 濮阳市| 芜湖市| 台东县| 阿合奇县| 凌海市| 久治县| 永泰县| 黄陵县| 淮阳县| 启东市| 赫章县| 库伦旗| 佛冈县| 宣化县| 项城市| 阿拉尔市|