中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python是不是動態強類型的

發布時間:2020-08-24 18:03:51 來源:億速云 閱讀:221 作者:Leah 欄目:編程語言

Python是不是動態強類型的?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

Python是動態強類型的,我們可以根據Python的變量定義和使用來進行判斷。

Python變量聲明和定義

與C#不同,Python在使用變量之前無須定義它的類型,試著運行下面的例子:

i = 12 print i

Python是不是動態強類型的

從上邊我們可以看到,變量 i 在使用前并不需要定義,但是必須聲明以及初始化該變量。試著運行下面的例子:

i = 1
print i + j

上面的代碼會產生一個異常:“NameError: name 'j' is not defined”,Python提示變量 j 沒有定義。這點和BASIC等弱類型的語言不一樣。在BASIC中,執行上述代碼的時候不會產生異常,你可以在EXCEL的VBA開發環境里試一下,把 print改為MsgBox就可以,結果會輸出 1 。這說明Python并不是一種類似BASIC的弱類型語言。

另一方面,Python與C#有一個很大的差異就是在程序運行過程中,同一變量名可以(在不同階段)代表不同類型的數據,看看下邊的例子:

i = 1
print i,type(i),id(i)
i = 10000000000
print i,type(i),id(i)
i = 1.1
print i,type(i),id(i)

變量 i 的類型在程序執行過程中分別經歷了int、long和float的變化,這和靜態類型語言(如C等)有很大不同。靜態語言只要一個變量獲得了一個數據類 型,它就會一直是這個類型,變量名代表的是用來存放數據的內存位置。而Python中使用的變量名只是各種數據及對象的引用,用id()獲取的才是存放數 據的內存位置,我們輸入的1、10000000000和1.1三個數據均會保存在id()所指示的這些內存位置中,直到垃圾回收車把它拉走(在系統確定你 不再使用它的時候)。這是動態語言的典型特征,它確定一個變量的類型是在給它賦值的時候。

另一方面,Python又是強類型的,試著運行下邊的例子:

# -*- coding: utf-8 -*-
i = 10; j = 'ss'
print i+j
#正確的寫法是print str(i)+j,輸出10ss

會產生一個異常:“TypeError: unsupported operand type(s) for +: 'int' and 'str'”。在BASIC等弱類型的語言中,上邊的例子會正常運行并返回(雖然有時候是不可預期的)結果。

所以,我們說Python既是一種動態類型語言,同時也是一種強類型的語言,這點是和C#不同的地方。對于Python的這種變量的聲明、定義和使 用方式,C#程序員可能要花一段時間去適應,不過相信你會很快就喜歡上它,因為它讓事情變得更加簡單(而且不會不安全)。而且,C# 4.0 已經開始用類似的方式定義和使用變量(通過在變量名前加關鍵字dynamic),如果你先學了Python變量,將能夠更快的適應C# 4.0的動態編程特征。

看完上述內容,你們掌握Python是不是動態強類型的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

牡丹江市| 海林市| 曲阜市| 奇台县| 拉孜县| 昌都县| 西安市| 阜南县| 新晃| 高淳县| 罗甸县| 南涧| 常州市| 洛扎县| 新源县| 肥乡县| 普宁市| 绥江县| 玉树县| 壶关县| 鄂伦春自治旗| 水富县| 大英县| 河源市| 黄梅县| 上思县| 集贤县| 静乐县| 工布江达县| 清涧县| 平阳县| 镇坪县| 松江区| 崇州市| 沙河市| 巫溪县| 秦安县| 阜宁县| 湘阴县| 班戈县| 门源|