python動態型別

2022-08-24 02:15:10 字數 797 閱讀 5522

python是動態語言。不需要事先宣告變數型別,同一變數可以被賦值為不同的物件型別。

不可變型別

不可變型別,物件一旦建立不可修改。整數型別 int 、浮點數型別 float、複數型別 complex、字串型別 str、元祖型別 tuple 、集合型別 set,都屬於不可變型別。下面通過變數賦值的過程理解型不可變物件:

a = 1 #建立變數a到物件1的引用

b = a #建立變數b到物件1的引用, 共享引用

a = 2 #因為int型別的物件1不可修改,所以新建物件2,並且建立變數a到它的引用

#現在變數a、b分別引用不同的物件。

過程如圖:

可變型別

可變型別指物件可原地修改的型別。比較典型的:列表型別 list、字典型別 dict。

以list為例,list是任意物件的有序集合,如下圖所示:

list物件中每個元素都是乙個物件引用。通俗理解,list物件的元素有點類似變數,同樣可更改。

對於可變物件,如果存在共享引用,那麼修改物件會同時影響引用該例項的所有變數。

>>> lst = [1,2,3]

>>> lst2 = lst

>>> lst is lst2 #is測試兩個變數是否引用同一物件

true

>>> lst, lst2

([1, 2, 3], [1, 2, 3])

>>> lst[0] = 10

>>> lst,lst2

([10, 2, 3], [10, 2, 3])

Python 動態型別

動態型別 dynamic typing 是python另乙個重要的核心概念。我們之前說過,python的變數 variable 不需要宣告,而在賦值時,變數可以重新賦值為任意值。這些都與動態型別的概念相關。1.動態型別 在我們接觸的物件中,有一類特殊的物件,是用於儲存資料的。常見的該類物件包括各種數...

Python動態型別

在python中,我們使用變數時,並沒有宣告變數的存在和型別。型別是在執行過程中自動決定的。a 3python將會執行三步去完成上面這個請求。1.建立乙個物件代表3 2.建立乙個變數a,如果a未建立。3.將變數a與物件3相連線。可以將變數a看作物件3的乙個引用。a 3 b a多個變數可以指向同乙個物...

Python 動態型別定義

動態型別以及由它提供的多型性,這個概念無疑是python語言的簡潔性和靈活性的基礎。在python中,並不會宣告指令碼中使用的物件的確切的型別。事實上,程式甚至可以不在意特定的型別 相反地,它們能夠自然地適用於更廣泛的場景下,因為動態型別是python語言靈活性的根源。變數建立 乙個變數,例如a,當...