免費視頻教程!零基礎學Python系列(14) - 動態類型和靜態類型

本節我們接着講動態類型和靜態類型:

這個系列教程建議對照着視頻學習,以下僅爲課件內容。

本節課程的視頻和實例源碼下載方式:點擊->我的主頁,查看個人簡介。

我儘量堅持每日更新一節。


編程語言從代碼到能夠運行通常需要經過編譯和運行兩個階段,Python雖然是解釋性語言,也不例外。源碼.py通過編譯,生成字節碼文件.pyc。.pyc是一系列指令,這些指令通過python虛擬機PVM來執行。

 

我們根據檢查變量數據類型的時機,將編程語言分爲動態類型語言靜態類型語言

靜態類型:在編譯階段檢查變量的數據類型,比如C、Java等。對於這種類型的語言,我們需要在代碼中定義變量的數據類型,不管是顯式的聲明還是隱式的定義。靜態類型語言的變量,一旦定義了數據類型,在運行時是不能動態改變的。比如C語言,它的典型用法如下:

void main()

{

    int score1 = 0;  // 變量score1在使用之前需要聲明爲int類型,否則編譯報錯

    int score2 = 50;

   

    score1 = score2 + 10;

                // ......

}

動態類型:在運行階段才檢查變量的數據類型。Python就是一種動態類型語言,它的變量不需要聲明數據類型,只有在運行時才動態確定其類型。通過上一節的幾個小實驗我們其實可以看出來,python的變量本質上是一個內存地址,本身沒有類型,它的數據類型由其指向的對象來決定。比如下面的例子,在python中是可以正常運行的:



# 此時,tmp是一個整數類型
tmp = 100
print(type(tmp))

# 此時,tmp是一個字符串類型,類型可以動態改變
tmp = "hello, world!"
print(type(tmp))

它的輸出是:

<class 'int'>

<class 'str'>

 

這種動態類型的特性,讓python使用起來會更加簡單,代碼會更加簡潔。但是它也會帶來一些負面影響,比如無法在編譯階段發現問題,同時動態類型會帶來運行時的一部分性能損耗。兩者各有利弊。我們在使用python編程時,也建議隨時搞清楚變量對應的數據類型,這樣可以規避一些隱藏的問題。

 


本節課程的視頻和實例源碼下載方式:點擊->我的主頁,查看個人簡介。

我儘量堅持每日更新一節。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章