_pycache__檔案夾可以看作該檔案夾下檔案已被python接管或者說編譯過,
在第一次執行代碼的時候,Python解釋器已經把編譯的位元組碼放在__pycache__檔案夾中,這樣以后再次運行的話,如果被呼叫的模塊未發生改變,那就直接跳過編譯這一步,直接去__pycache__檔案夾中去運行相關的 *.pyc 檔案,大大縮短了專案運行前的準備時間,
解釋器的具體作業:
1、完成模塊的加載和鏈接;
2、將源代碼編譯為PyCodeObject物件(即位元組碼),寫入記憶體中,供CPU讀取;
3、從記憶體中讀取并執行,結束后將PyCodeObject寫回硬碟當中,也就是復制到.pyc或.pyo檔案中,以保存當前目錄下所有腳本的位元組碼檔案,
再看_pycache__檔案夾下生成的檔案名為*.cpython-30.pyc的檔案名的含義,其中cpython表示c語言實作的Python解釋器,而代表的是版本為3.0版,
其實,在Python中匯入模塊時,實際上會把被匯入的模塊執行一遍,
一般來說,我們在主函式中使用if __name__ == '__main__':是為了保證匯入的模塊不被執行,因為_name_代表的是當前模塊的名字,也就是'__main__',而新匯入的模塊的名字為其自身的名字,例如為test.py,那么經過判斷后,就不會被執行,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/547463.html
標籤:其他
上一篇:手擼圖片壓縮工具
