當(dāng) Python 執(zhí)行代碼的時候,會啟用一個 Python 解釋器,將源碼(.py)文件讀取到內(nèi)存當(dāng)中,然后編譯成字節(jié)碼(.pyc)文件,最后交給 Python 的虛擬機(jī)逐行解釋并執(zhí)行其內(nèi)容,然后釋放內(nèi)存,退出程序。
當(dāng)?shù)诙卧趫?zhí)行當(dāng)前程序的時候,會現(xiàn)在當(dāng)前目錄下尋找有沒有同名的 pyc 文件,如果找到了,則直接進(jìn)行運(yùn)行,否則重復(fù)上面的工作。
pyc 文件的目的其實就是為了實現(xiàn)代碼的重用,為什么這么說呢?因為 Python 認(rèn)為只要是 import 導(dǎo)入過來的文件,就是可以被重用的,那么他就會將這個文件編譯成 pyc 文件。
python 會在每次載入模塊之前都會先檢查一下 py 文件和 pyc 文件的最后修改日期,如果不一致則重新生成一份 pyc 文件,否則就直接讀取運(yùn)行。
以上是我的個人理解,不知道對不對,求解。