可變物件,不可變物件

2022-07-17 00:57:14 字數 697 閱讀 2445

不可變物件為字串,元組等

可變物件為列表,字典,集合等。

淺拷貝只是對已經存在的記憶體新增加乙個物件引用。,

深拷貝就是重新申請乙個新的記憶體,使這個是新物件是新記憶體位址的引用。

對於可變物件引用時時經常出現。

考慮以下兩段**:

**1

l =

for i in range(10):'

num'

:i})

print(l)

結果:[, , , , , , , , , ]

**2

l =

a =

for i in range(10

): a[

'num

'] =i

print(l)

print(

'id(l[0]) :

',id(l[0]),'

\nid(l[1]) :

',id(l[1

]))結果:

[, , , , , , , , , ]

id(l[

0]) : 4542112

id(l[

1]) : 4542112

結論:

可變物件和不可變物件

要理解可變物件和不可變物件,先要理解final關鍵字。參考此部落格 沒有經過原博主的同意便引用了一些,侵刪!final關鍵字可以用來修飾類 方法和變數 成員或區域性 final修飾類時表明這個類不能被繼承。final類中的方法會被隱式的定義為fianl,變數自行定義需要不要被final修飾。fina...

可變物件和不可變物件

python 在堆 heap 中分配的物件分為兩類,可變物件和不可變物件 物件的內容發生變化時,變數的物件引用是不會變化的 dict print s d dict,id dict dict a4 4 print s d dict,id dict output 42838752 42838752 不可...

python 可變物件和不可變物件

變數沒有型別,那麼就意味著它可以隨意指向任何物件。python中的變數相當於乙個指標。當將乙個變數a賦值給另乙個變數b時,無論變數a指向的是可變物件還是不可變物件,變數b指向變數a指向的物件。例 alist 1 2,3 anolist alist id alist id anolist true b...