直譯
Python 也是所謂的直譯語言,雖然在概念上,動態與直譯的意義大不相同,不過這兩個特性卻幾乎會一起出現:動態語言幾乎都是直譯語言。
那到底什麼是直譯語言呢?這要從編譯語言講起。一款編譯語言在寫完後,需要使用編譯器來將之轉為電腦能讀懂的機器碼,再讓電腦去執行。而直譯語言則是在要執行時,才透過直譯器一行一行地轉化為機器碼。聽起來兩者似乎都需要經過翻譯,看起來沒什麼不同,那讓我們舉個例子來說明。
這就好像我們寫出來的一篇中文文章必須翻譯成外文後才能讓外國人讀懂,編譯語言利用編譯器進行整篇文章的翻譯,不僅翻譯還潤飾跟調整架構(還講究信達雅呢!),碰到英國人就翻譯成英文,碰到日本人就翻譯成日文,往後若有人想讀這篇文章,就直接去找看的懂得翻譯文章來讀就好了。(在這裡不同國家的外國人相當於不同的作業系統,同樣的程式碼若要到 Windows 執行則需要 Windows 的編譯器,若要到 Mac 執行則需要 Mac 的編譯器。) 而直譯語言則是請了一個即時翻譯(直譯器),他接收一句中文,吐出一句外文,每次外國人要看文章時,都需要有這個翻譯在旁邊。
透過這個比喻,我們可以大致分析兩者的優缺點,編譯語言的執行速度一定比較快,因為外國人可以直接看翻譯好的文章而不必等待翻譯一句一句翻譯,但是直譯語言的可攜性一定更好,因為一篇英文文章拿到日本就沒有人看的懂了(別想太多,這裡只是比喻!),但是我卻可以帶著我的中文文章,在英國找個英文翻譯,在日本找個日本翻譯,而且有翻譯在馬上就能翻譯,不需要等到編譯完成 (當文章太長的時候,是受不了整篇翻完再看的)。
Python 就具備了這樣高可攜性跟立即執行的特性,這讓 Python 異常適合學習跟測試。