欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

模塊的調(diào)用

Python導入模塊時,實際上會把被導入的模塊執(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__。如果不涉及模塊導入,__name__的值就是__main__,如果模塊被導入引用的話,那么這個模塊內(nèi)的__name__值就是文件的名字(不帶.py),例如test.py:

def haha():
  print("haha")

haha()
print(__name__)

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

haha
__main__

如果test被導入引用的話,例如test2:

import test

print("good")

運行結(jié)果為:

haha
test
good

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

由來

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

解釋器的具體工作:

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

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python-opencv獲取二值圖像輪廓及中心點坐標的代碼

    python-opencv獲取二值圖像輪廓及中心點坐標的代碼

    今天小編就為大家分享一篇python-opencv獲取二值圖像輪廓及中心點坐標的代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python中numpy矩陣的零填充的示例代碼

    python中numpy矩陣的零填充的示例代碼

    本文主要介紹了python中numpy矩陣的零填充的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Python實現(xiàn)檢測文件MD5值的方法示例

    Python實現(xiàn)檢測文件MD5值的方法示例

    這篇文章主要介紹了Python實現(xiàn)檢測文件MD5值的方法,涉及Python針對大文件的讀取、判斷、運算、加密等相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • 對于Python深淺拷貝的理解

    對于Python深淺拷貝的理解

    這篇文章主要介紹了對于Python深淺拷貝的理解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python sklearn中tsne算法降維結(jié)果不一致問題的解決方法

    python sklearn中tsne算法降維結(jié)果不一致問題的解決方法

    最近在做一個文本聚類的分析,在對文本數(shù)據(jù)embedding后,想著看下數(shù)據(jù)的分布,于是用sklearn的TSNE算法來降維embedding后的數(shù)據(jù)結(jié)果,當在多次執(zhí)行后,竟發(fā)現(xiàn)TSNE的結(jié)果竟然變了,而且每次都不一樣,所以本文就給大家講講如何解決sklearn中tsne算法降維結(jié)果不一致的問題
    2023-10-10
  • python實現(xiàn)心型照片墻效果

    python實現(xiàn)心型照片墻效果

    這篇文章主要為大家詳細介紹了python實現(xiàn)心型照片墻效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python數(shù)據(jù)分析之使用matplotlib繪制折線圖、柱狀圖和柱線混合圖

    Python數(shù)據(jù)分析之使用matplotlib繪制折線圖、柱狀圖和柱線混合圖

    matplotlib是python的一個模塊,用于繪制各種圖形,今天介紹一下折線圖的繪制,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)分析之使用matplotlib繪制折線圖、柱狀圖和柱線混合圖的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Bottle框架中的裝飾器類和描述符應用詳解

    Bottle框架中的裝飾器類和描述符應用詳解

    這篇文章主要介紹了Bottle框架中的裝飾器類和描述符應用詳解,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • python 已知一個字符,在一個list中找出近似值或相似值實現(xiàn)模糊匹配

    python 已知一個字符,在一個list中找出近似值或相似值實現(xiàn)模糊匹配

    今天小編就為大家分享一篇python 已知一個字符,在一個list中找出近似值或相似值實現(xiàn)模糊匹配,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 使用Python合并PDF文件并添加自定義目錄及頁腳的全過程

    使用Python合并PDF文件并添加自定義目錄及頁腳的全過程

    在處理文檔時,我們經(jīng)常遇到需要合并多個PDF文件并添加目錄及頁腳的情況,本文將介紹如何使用Python,特別是PyPDF2和reportlab庫來實現(xiàn)這一功能我們將通過一個實用的示例來演示整個過程,需要的朋友可以參考下
    2024-03-03

最新評論