Python有自己的解釋器和執(zhí)行指令的Python虛擬機(jī)(PVM),這也使得Python也具有像Java那樣良好的跨平臺(tái)特性
相比于更加注重商業(yè)邏輯的Java,Python更多的是專注于某一項(xiàng)特殊實(shí)現(xiàn)土辩,快捷開發(fā)的功能娶视,譬如數(shù)據(jù)分析峭火,算法模型的構(gòu)建钥庇,數(shù)據(jù)爬蟲。
相比于Java歼指,Python擁有更多開源的庫爹土,并且這些開源庫中很多是用C/C+編寫,封裝出Python接口踩身。
????Python的代碼文件test.py在通過編譯之后胀茵,并不是像Java那樣直接生成class文件,而是先生成pyCodeObject對(duì)象挟阻,保存的是Python的字節(jié)碼數(shù)據(jù)(對(duì)于Python來說琼娘,一個(gè)文件編譯后生成的字節(jié)碼也是一個(gè)對(duì)象),放在內(nèi)存中附鸽,執(zhí)行過后才會(huì)生成pyc文件并寫入硬盤脱拼。
????pyc包含三部分:Python版本信息(用于區(qū)分哪種Python生成的文件),pyc的生成時(shí)間坷备,以及字節(jié)碼數(shù)據(jù)pyCodeObject挪拟,Python代碼在執(zhí)行時(shí)會(huì)先檢測硬盤中是否有編譯好的pyc文件,如果有击你,直接拿來交給Python虛擬機(jī)執(zhí)行,沒有的話就進(jìn)行編譯谎柄,而pyc的時(shí)間信息用于保證代碼修改過后能進(jìn)行重新編譯丁侄。