
掃描右側(cè)圖片或微信搜索 “ Java技術(shù)分享屋 ” ,回復(fù) “ 驗(yàn)證碼 ” ,獲取驗(yàn)證密碼。
本資料僅供讀者預(yù)覽及學(xué)習(xí)交流使用,不能用于商業(yè)用途,請(qǐng)?jiān)谙螺d后24小時(shí)內(nèi)刪除。如果喜歡,請(qǐng)購(gòu)買(mǎi)正版!
一.資料圖片
二.資料簡(jiǎn)介
Python是一種半編譯半解釋型運(yùn)行環(huán)境。首先,它會(huì)在模塊 "載入" 時(shí)將源碼編譯成字節(jié)碼 (Byte Code)。而后,這些字節(jié)碼會(huì)被虛擬機(jī)在一個(gè) "巨大" 的核心函數(shù)里解釋執(zhí)行。這是導(dǎo)致 Python 性能較低的重要原因,好在現(xiàn)在有了內(nèi)置 Just-in-time次編譯器的Py可供選擇。
當(dāng)虛擬機(jī)開(kāi)始運(yùn)行時(shí),它通過(guò)初始化函數(shù)完成整個(gè)運(yùn)行環(huán)境設(shè)置:
? 創(chuàng)建解釋器和主線程狀態(tài)對(duì)象,這是整個(gè)進(jìn)程的根對(duì)象。
? 初始化內(nèi)置類(lèi)型。數(shù)字、列表等類(lèi)型都有專(zhuān)門(mén)的緩存策略需要處理。
? 創(chuàng)建 __builtin__ 模塊,該模塊持有所有內(nèi)置類(lèi)型和函數(shù)。
? 創(chuàng)建 sys 模塊,其中包含了 sys.path、modules 等重要的運(yùn)行期信息。
? 初始化 import 機(jī)制。
? 初始化內(nèi)置 Exception。
? 創(chuàng)建 __main__ 模塊,準(zhǔn)備運(yùn)行所需的名字空間。
? 通過(guò) site.py 將 site-packages 中的第三方擴(kuò)展庫(kù)添加到搜索路徑列表。
? 執(zhí)行入?口 py ?文件。執(zhí)行前會(huì)將 __main__.__dict__ 作為名字空間傳遞進(jìn)去。
? 程序執(zhí)行結(jié)束。
? 執(zhí)行清理操作,包括調(diào)用退出函數(shù),GC 清理現(xiàn)場(chǎng),釋放所有模塊等。
? 終止進(jìn)程。
Python 源碼是個(gè)寶庫(kù),其中有大量的編程范式和技巧可供借鑒,尤其是對(duì)內(nèi)存的管理分配。個(gè)人建議有 C 基礎(chǔ)的兄弟,在閑暇時(shí)翻看一二。