python引用之坑

看代碼:

a=3
id(a)
1871146064

b=3
id(b)
1871146064

c=3
id©
1871146064

id(3)
1871146064
這裏a,b,c和常量3都指向同一內存區
看代碼:

id([1,2,3])
4578760

id(list([1,2,3]))
52379464

list3=[1,2,3]
id(list3)
52379336

list4=[1,2,3]
id(list4)
52446792

id(list3[0])
1871146000

id(list4[0])
1871146000
換作列表時,list3,list4和臨時列表對象[1,2,3]的內存地址不同
再看代碼:

id(list3[0])
1871146000

id(list4[0])
1871146000
帶對於列表成員,如果值相同,則內存地址相同,注意:如果成員爲列表等複合對象,則內存地址也不同
對於不可變類型,如元組,現象一樣,看代碼:

tuple1=(1,2,3)
tuple2=(1,2,3)
id(tuple1)
52415152

id(tuple2)
50155096
再看代碼:

list1=[1,2,3]
list2=list1
id(list1)
52315848

id(list2)
52315848
如果一個變量去初始化另一個變量,則指向的地址是一樣的!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章