熱線電話:13121318867

登錄
首頁精彩閱讀Python「強類型」or「弱類型」?90% 的人說不清
Python「強類型」or「弱類型」?90% 的人說不清
2019-11-27
收藏
Python「強類型」or「弱類型」?90% 的人說不清

作者 | Python3分鐘

來源 | python3m

  • 靜態類型 vs 動態 編程語言
  • 強類型 vs 弱類型 編程語言

1 類型檢查

類型檢查是一個驗證和施加類型約束的過程,編譯器或解釋器通常在編譯或運行階段做類型檢查。例如,你不能拿一個string類型值除以浮點數。

用更簡單的術語,類型檢查僅僅就是查看變量和它們的類型,然后說這個表達式是合理的。

因此,現在我們知道類型檢查是什么,明白這些術語真的很簡單。

在靜態類型語言(statically typed languages)中,類型檢查發生在編譯階段(compile time),然而,在動態類型語言(dynamically typed languages)中,類型檢查發生在運行階段(run time)

2 它意味著什么?

2.1 類型聲明

靜態類型(static): 所有的變量類型必須被顯示地聲明,因為這些信息在編譯階段就被需要。例如,在 Java 中

float f = 0.5

動態(Dynamic): 顯示聲明不被要求,因為類型賦值發生在運行階段。例如在 Python 中,

f = 0.5

2.2 性能

靜態類型(static): 編譯階段做更多處理,但是運行時(run-time)性能更好

動態(Dynamic): 編譯階段更高效,但是運行時的類型檢查會影響到性能

2.3 靈活性和出錯

靜態類型: 運行時出錯機會更小,但是提供給程序員的靈活性不好

動態類型: 提供更多的靈活性但是運行時出錯機會相對更大

2.4 記住

各種語言按照動態/靜態,弱類型/強類型的劃分:

Python「強類型」or「弱類型」?90% 的人說不清

3 什么是強類型/弱類型?

首先看下什么是強類型,在強類型中,不管在編譯時還是運行時,一旦某個類型賦值給某個變量,它會持有這個類型,并且不能同其他類型在計算某個表達式時混合計算。例如在Python中:

data = 5 # 在runtime時,被賦值為整形
data = data + "xiaoming" # error

然而,在弱類型中,它是很容易與其他類型混合計算的,比如同樣一門偉大的語言 Javascript,使用它:

var data = 5
data = data + 'xiaoming' //string和int可以結合

4 結論

類型檢查確保一個表達式中的變量類型是合法的。在靜態類型語言中,類型檢查發生在編譯階段;動態類型語言,類型檢查發生在運行階段。

強類型語言有更強的類型檢查機制,表達式計算中會做嚴格的類型檢查;而弱類型語言允許各種變量類型間做一些運算。

Python是一門動態的(dynamic)且強類型(strong)語言。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢