python是編譯型語(yǔ)言還是解釋型語(yǔ)言?回答這個(gè)問(wèn)題前,應(yīng)該先弄清楚什么是編譯型語(yǔ)言,什么是解釋型語(yǔ)言。
所謂編譯執(zhí)行就是源代碼經(jīng)過(guò)編譯器編譯處理,生成目標(biāo)機(jī)器碼,就是機(jī)器能直接運(yùn)行的二進(jìn)制代碼,下次運(yùn)行時(shí)無(wú)需重新編譯。
不過(guò)它是針對(duì)特定CPU體系的,這些目標(biāo)代碼只能在特定平臺(tái)執(zhí)行,如果這個(gè)程序需要在另外一種CPU上面運(yùn)行,這個(gè)代碼就必須重新編譯。
它不具備可移植性,但是執(zhí)行速度快,C、C++這類語(yǔ)言屬于編譯型語(yǔ)言。
而解釋型語(yǔ)言是在代碼運(yùn)行期間逐行翻譯成目標(biāo)機(jī)器碼,下次執(zhí)行時(shí),還是需要逐行解釋,我們可以簡(jiǎn)單認(rèn)為Java、Python都是解釋型語(yǔ)言。
編譯型相當(dāng)于廚師直接做好一桌子菜,顧客來(lái)了直接開(kāi)吃,而解釋型就像吃火鍋,廚師把菜洗好,顧客需要自己動(dòng)手邊煮邊吃。
效率上來(lái)說(shuō)解釋型語(yǔ)言自然比不過(guò)編譯型語(yǔ)言,當(dāng)然也不是絕對(duì)了,像JIT的效率就很高。