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