在本教程中,我們將了解 python 中什麼是動態類型。
每當我們用 python 編寫程序時,我們都會遇到一組不同的語句,其中之一是賦值語句,我們用一個值初始化一個變量。
讓我們看看在 Python 的情況下,賦值是如何不同的。
當我們談論像 C、C++和 Java 這樣的語言時,內存是根據變量的數據類型來分配的,並相應地被訪問,而 python 是一種動態類型的語言,它將值存儲在某個位置,然後將相應的變量名與容器相結合。
數據類型在運行時確定。
考慮下面給出的程序-
a = 12.0
print(type(a))
b = 24
print(type(b))
c = 'data'
print(type(c))
print (a * 3)
print (b * 3)
print (c * 3)
輸出:
<class 'float'>
<class 'int'>
<class 'str'>
36.0
72
datadatadata
說明:
讓我們來看看這個程序的解釋-
- 在第一步中,我們已經用不同的類型初始化了變量 a、b 和 c。
- 之後,我們檢查了它們的類型,分別是浮點型、整數型和字符串型。
- 下一步,將其中的三個乘以三。
- 因為數據類型在運行時是已知的,所以操作是基於該類型執行的。
- 我們可以觀察到,輸出中的第一個值是一個浮點值,下一個值是一個整數,一個字符串乘以三倍。
- 在執行程序時,會顯示預期的輸出。
對象、變量和引用之間的關係。
當我們在 Python 中賦值一個變量時,會出現以下一系列步驟
- 我們在內存中創建一個包含值的對象。
- 如果變量名還不存在,我們可以創建它。
- 引用被分配給變量的對象。
考慮下面給出的程序-
a = 12.0
print (type(a))
a = 24
print(type(a))
a = 'data'
print (type(a))
a = 2+3j
print (type(a))
輸出:
<class 'float'>
<class 'int'>
<class 'str'>
<class 'complex'>
說明:
讓我們了解一下在上面的程序中發生了什麼。
- 我們已經用不同數據類型的值初始化了變量’ a 。
- 在此之後,我們檢查了每種情況下「 a 的類型。
- 由此,我們可以推斷-
- 在第一種情況下,是對浮點對象的引用。
- 在第二種情況下,是對整數對象的引用。
- 在第三種情況下,是對字符串對象的引用。
- 在第四種情況下,是對複雜對象的引用。
共享參數
在開始之前,讓我們看看這個程序-
a = 12.0
b = a
print(a)
print(b)
輸出:
12.0
12.0
說明:
是時候了解這裡到底發生了什麼-
- 我們已經將 a 的值初始化為 12.0 並將 b 初始化為 a 。
- 在此之後,我們打印出了 a 和 b 的值,結果是 12.0
這只不過是共享引用的概念,它說「兩個變量可以有相同的引用。」
再舉一個例子就更清楚了。
a = 12.0
b = a
a = a * 7
print(a)
print(b)
輸出:
84.0
12.0
說明:
讓我們來看看這個程序的解釋-
- 我們已經將 a 的值初始化為 12.0, b 的值初始化為 a ,然後再次用* 7 賦值『a
- 在此之後,我們打印了 a 的 a 和 b 的值,結果是 84.0,但是 b 的情況下是 12.0,因為它仍然引用了 a 的第一個值。
動態類型語言的缺點
使像 Java 這樣的語言更方便的特性是它是靜態類型的,因此錯誤和錯誤是在編譯時而不是運行時報告的。
因此,python 開發人員最關心的是錯誤會在運行時顯示出來,因此他們必須制定策略來糾正錯誤。
結論
作為本教程的總結,我們可以說 python 是一種動態類型語言,在這裡我們了解了在使用它時可以觀察到的獨特特徵。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/293021.html