內(nèi)置類型
內(nèi)置類型.png
函數(shù)
函數(shù).png
類
類.png
Python是一種半編譯半解釋型運(yùn)行環(huán)境掂林。首先,它會在模塊"載入"時(shí)將源碼編譯成字節(jié)碼(ByteCode)坝橡。而后泻帮,這些字節(jié)碼會被虛擬機(jī)在一個"巨大"的核心函數(shù)里解釋執(zhí)行。這是導(dǎo)致Python性能較低的重要原因计寇,好在現(xiàn)在有了內(nèi)置Just-in-time二次編譯器的PyPy可供選擇锣杂。
當(dāng)虛擬機(jī)開始運(yùn)?行時(shí),它通過初始化函數(shù)完成整個運(yùn)行環(huán)境設(shè)置:
?創(chuàng)建解釋器和主線程狀態(tài)對象番宁,這是整個進(jìn)程的根對象元莫。
?初始化內(nèi)置類型。數(shù)字贝淤、列表等類型都有專門的緩存策略需要處理柒竞。
?創(chuàng)建builtin模塊,該模塊持有所有內(nèi)置類型和函數(shù)播聪。
?創(chuàng)建sys模塊朽基,其中包含了sys.path布隔、modules等重要的運(yùn)?行期信息。
?初始化import機(jī)制稼虎。
?初始化內(nèi)置Exception衅檀。
?創(chuàng)建main模塊,準(zhǔn)備運(yùn)行所需的名字空間霎俩。
?通過site.py將site-packages中的第三?方擴(kuò)展庫添加到搜索路徑列表哀军。
?執(zhí)行入口py文件。執(zhí)行前會將main.dict作為名字空間傳遞進(jìn)去打却。
?程序執(zhí)行結(jié)束杉适。
?執(zhí)行清理操作,包括調(diào)?用退出函數(shù)柳击,GC清理現(xiàn)場猿推,釋放所有模塊等。
?終止進(jìn)程捌肴。
Python源碼是個寶庫蹬叭,其中有?大量的編程范式和技巧可供借鑒,尤其是對內(nèi)存的管理分配状知。