久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    pyhton中__pycache__文件夾的產生與作用_

     jsdlgx 2020-03-11
    展開
    源起
    今天和一新來的同事溝通,說他用python編寫了一個工程,但在第一次運行后,發現工程根目錄下生成了一個__pycache__文件夾,里面是和py文件同名的各種以 .cpython-35.pyc 結尾的文件,問同事都不太清楚,所以便抽空整理了一下該知識點。先解釋下cpython-35,cpython代表的是c語言實現的Python解釋器,-35代表的是版本為3.5版。 
    至于pyc,先來了解一下模塊的調用。

    模塊的調用
    Python中導入模塊時,實際上會把被導入的模塊執行一遍,如下: 
    先看被調用的模塊test.py:

    def haha():
        print("哈哈")

    haha()

    再看主程序main.py:

    import test

    print("一條大樹")

    執行結果是:

    哈哈
    一條大樹

    那怎么才能只是單純調用而不執行被調用模塊的代碼呢?要想被調用模塊代碼不被執行,前提得知道變量__name__是什么意思,簡單來說就是,如果不涉及模塊導入的話,__name__的值就是” __main__“,如果當此模塊被導入引用的話,那么這個模塊內的__name__值就是文件的名字(不帶.py),如下test_1.py:

    def haha():
        print("哈哈")

    haha()
    print(__name__)

    test_1.py執行結果為:

    哈哈
    __main__

    如果test_1被導入引用的話,如test_2:

    import test_1

    print("一條大樹")

    test_2x運行結果為:

    哈哈
    test_1
    一條大樹

    上邊所說要是弄懂的話,那我們在被調用的模塊中,可執行的代碼前加上這么一句判斷,if __name__ == '__main__':,被調用的模塊的代碼就不會被執行了!

    接下來才是正題
    以下參考自Joy_Shen的一個回答。 
    先大概了解一下python基本運行機制。Python程序運行時不需要編譯成二進制代碼,而直接從源碼運行程序,簡單來說是,Python解釋器將源碼轉換為字節碼,然后再由解釋器來執行這些字節碼。

    解釋器的具體工作: 
    1、完成模塊的加載和鏈接; 
    2、將源代碼編譯為PyCodeObject對象(即字節碼),寫入內存中,供CPU讀取; 
    3、從內存中讀取并執行,結束后將PyCodeObject寫回硬盤當中,也就是復制到.pyc或.pyo文件中,以保存當前目錄下所有腳本的字節碼文件。

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

    那有的小伙伴就有疑問了,__pycache__文件夾的意義何在呢? 
    因為第一次執行代碼的時候,Python解釋器已經把編譯的字節碼放在__pycache__文件夾中,這樣以后再次運行的話,如果被調用的模塊未發生改變,那就直接跳過編譯這一步,直接去__pycache__文件夾中去運行相關的 *.pyc 文件,大大縮短了項目運行前的準備時間。

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 激情 自拍 另类 亚洲| 中文字幕无码久久精品| 国产成年码AV片在线观看| 久久伊人精品青青草原APP | 国产精品美女久久久久| 国产精品中文字幕自拍| 最新AV中文字幕无码专区| 欧美人成精品网站播放| 午夜免费无码福利视频| 久久久综合香蕉尹人综合网| 精品视频在线观看免费观看| 四虎永久在线精品免费一区二区| 亚洲欧洲日产国无高清码图片| 美女黄18以下禁止观看| 午夜DY888国产精品影院| 国产无套粉嫩白浆在线观看| 国产尤物精品自在拍视频首页| 两个人看的WWW在线观看| 国厂精品114福利电影免费| 国产成人无码A区在线观看视频 | 国产精品视频午夜福利| 亚洲国产成人久久综合三区 | 国产精品人妻久久无码不卡| 国产精品久久国产精麻豆99网站 | 亚洲国产精品无码一区二区三区| 天干天干天啪啪夜爽爽色| 国产一区二区不卡91| 欧美一进一出抽搐大尺度视频| 国产情侣激情在线对白| 亚洲av永久无码精品天堂久久| 日韩欧美亚洲综合久久| 成人看的污污超级黄网站免费| 国模精品一区二区三区| 影音先锋2020色资源网| 久久99热只有频精品8| 丰满人妻一区二区三区视频53 | 国产凹凸在线一区二区| 中文字幕无码中文字幕有码A| 国产精品 自在自线| 中文字幕国产在线精品| 久久丫精品国产亚洲AV不卡|