python 可變對象和不可變對象

來源:互聯網
上載者:User

標籤:string   ring   bsp   分享圖片   可變   bytes   oat   one   hid   

不可變對象,該對象所指向的記憶體中的值不能被改變。當改變某個變數時候,由於其所指的值不能被改變,相當於把原來的值複製一份後再改變,這會開闢一個新的地址,變數再指向這個新的地址。

可變對象,該對象所指向的記憶體中的值可以被改變。變數(準確的說是引用)改變後,實際上是其所指的值直接發生改變,並沒有發生複製行為,也沒有開闢新的地址,通俗點說就是原地改變

python中,int,float,string,tuple,bytes為不可變對象,set,list,dict為可變對象。

int:

1 >>> a = 102 >>> id(a)3 1402899362180484 >>> a = a + 15 >>> id(a)6 140289936218024
View Code

float:

1 >>> a = 10.552 >>> id(a)3 1402899362260244 >>> a = a + 1.55 >>> id(a)6 140289936226000
View Code

string:

1 >>> a = ‘abc‘2 >>> id(a)3 43561351124 >>> a = a + ‘d‘5 >>> id(a)6 4357016240
View Code

tuple:

1 >>> a = (1, 2, 3)2 >>> id(a)3 43569135844 >>> a = (4, 5, 6)5 >>> id(a)6 4356799536
View Code

bytes:

1 >>> a = b‘abc‘2 >>> id(a)3 43561351124 >>> a = a + ‘def‘5 >>> id(a)6 4357016288
View Code

set:

1 >>> a = set([1, 2, 3])2 >>> id(a)3 43567542244 >>> a.add(4)5 >>> id(a)6 4356754224
View Code

list:

1 >>> a = [1, 2, 3]2 >>> id(a)3 43569056564 >>> a.append(4)5 >>> id(a)6 4356905656
View Code

dict:

1 >>> a = {‘one‘: 1, ‘two‘: 2}2 >>> id(a)3 43570245764 >>> a[‘three‘] = 35 >>> id(a)6 4357024576
View Code

 

python 可變對象和不可變對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.