為了理解動態(tài)類型,最好先理解其反面——靜態(tài)類型。
靜態(tài)類型語言有C、JAVA等。這些語言與它們的動態(tài)類型對應(yīng)語言之間的主要區(qū)別在于類型檢查。靜態(tài)類型是在編譯時進行類型檢查,而動態(tài)類型是在運行時進行類型檢查。
注:這是對動態(tài)類型和靜態(tài)類型的平淡定義。其中具體的技術(shù)細節(jié)超出了本文要討論的范疇。
由于Python的調(diào)試問題,以及Python語言如何使跟蹤bug的過程變得比現(xiàn)在更復(fù)雜,一些開發(fā)人員對Python大發(fā)牢騷。
這種抱怨源于這樣一個事實:作為一種動態(tài)類型語言,Python在運行時標(biāo)記錯誤,這使得它比Java等靜態(tài)類型語言更容易出錯。
理論上,這是一個威脅,畢竟考慮到一個著名的諺語——是人都會犯錯。但是在實踐中,我懷疑類型錯誤有沒有他們聲稱的那樣嚴重。
說真的,現(xiàn)在誰還犯類型錯誤?
靜態(tài)類型語言遠不是一個無障礙的調(diào)試避風(fēng)港。除了類型錯誤之外,大多數(shù)靜態(tài)類型語言都無法捕獲到你可能認為應(yīng)該檢測到的細微錯誤。這些錯誤同樣發(fā)生在靜態(tài)類型和動態(tài)類型中。
此外,幾乎沒有代碼會不經(jīng)過單元測試就部署。單元測試可以很好地防范類型錯誤。只有極少數(shù)情況下,類型錯誤會繞過單元測試來搞亂代碼。在調(diào)試方面,編程語言的另一個特性是安全類型和不安全類型。允許用戶重寫系統(tǒng)類型的語言被認為具有不安全的類型——例如C。雖然不安全的類型給了用戶對類型的控制,但它的誤用會導(dǎo)致程序任意崩潰。
大多數(shù)靜態(tài)類型語言都是不安全的類型系統(tǒng)。然而,JAVA是一種安全類型語言。Python和我所知道的其它動態(tài)類型編程語言也是如此。
最后,我更愿意使用像Python這樣方便和高級的語言編寫一百萬次代碼,而不是陷入JAVA等語言的低級細節(jié)中。
以上內(nèi)容為大家介紹了python的動態(tài)類型,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。http://www.parentadvocate.org/