Python語言的2個典型特性
【動態程式語言】
學習過C、C++的同學都知道,使用這二者編寫程式碼時,變數在使用前必須通過類似「int a=123」的語句提取申明,然後在真正賦值的時候校驗取值跟類型是否相符。也就是常說的「靜態程式語言」。
而Python屬於「動態程式語言」:使用時可以在未提取申明的情況下直接賦值,程式在真正運行的時候再去動態的根據=右側的取值來確定變數的類型。
因為「動態程式語言」的特性,Python在賦值的時候,總是先計算=右側表達式的結果並申請記憶體空間進行存儲,然後判斷變數此時的類型並將變數指向結果的記憶體地址以完成賦值操作。
【有編譯過程的解釋型語言】
眾所周知,根據程式語言是否提前將源程式碼編譯得到可供機器直接運行的二進位機器碼,可將語言分為兩大陣營:「編譯型語言」和「解釋型語言」。
「編譯型語言」的典型代表:C、C++,其最主要的優勢就是:運行效率最高,最大的不足就是:平台兼容性差,主要原因就在於:提前編譯成機器可運行的機器碼。
「解釋型語言」的典型程式碼:Shell,其最主要的優勢就是:平台兼容性最好,最大的不足就是:運行效率最低,主要原因就在於:沒有提前編譯,運行時需要逐行讀取並運行。
為了在「運行高效」和「良好的兼容性」方面取得最佳的平衡,Python其實是有編譯過程的(將py的源碼編譯成相對高效的位元組碼pyc),不過完成的內容相對C那種嚴格編譯型語言較少,具體內容如下: