標籤: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 4357024576View Code
python 可變對象和不可變對象