[譯]pycache是什么?


原回答: https://stackoverflow.com/questions/16869024/what-is-pycache

當你用python運行一個程序時,解釋器首先將它編譯成字節碼(這是一種過度簡化)並將其存儲在__pycache__文件夾中。
如果你看看那里你會發現一堆文件共享項目文件夾中的.py文件的名稱,只有他們的擴展名是.pyc或.pyo。
這些分別是您的程序文件的字節碼編譯和優化的字節碼編譯版本。

作為一名程序員,你可以在很大程度上忽略它......它所做的只是讓你的程序開始更快一點。
當你的腳本改變時,它們將被重新編譯,如果你刪除了文件或者整個文件夾並且再次運行你的程序,它們將會重新出現(除非你明確地禁止了這個行為)
如果您使用的是cpython(這是最常見的,因為它是參考實現),並且您不需要該文件夾,那么可以通過啟動具有-B標志的解釋器來禁止它

python -B foo.py

python解釋器的工作順序:
1 完成模塊的加載和鏈接;
2 將源代碼編譯為PyCodeObject對象(即字節碼),寫入內存中,供CPU讀取;
3 從內存中讀取並執行,結束后將PyCodeObject寫回硬盤當中,也就是復制到.pyc或.pyo文件中,以保存當前目錄下所有腳本的字節碼文件;
4 之后若再次執行該腳本,它先檢查【本地是否有上述字節碼文件】和【該字節碼文件的修改時間是否與其腳本一致】。是就直接執行,否則重復上述步驟。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM