python对字符串和集合的内存垃圾回收机制
生活随笔
收集整理的這篇文章主要介紹了
python对字符串和集合的内存垃圾回收机制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
變量聲明:
name1 = "andy" name2 = name1這個時候我把name1的值給改成了“tom”,問現在name2的值是什么?為什么?
答:andy,因為你把name1的值改了相當于你將name1指向了一個新的叫做tom的內存地址,但name2仍然指向舊的andy的內存地址(字符串)。java和c#同理
如下
但是如果name1的值是一個集合的話,那么情況就是相反的,即它還是在原來的內存地址上做更改,如果name1的值發生了變化,name2的值也會跟著變
>>> name_list = ["rooney","linda","ramos"] >>> id(name_list) 46820168 >>> name_list.append('pique') >>> id(name_list) 46820168總結:
對于字符串的更改:不是說你是在原來字符串指定的內存地址上更改,而是新開了一個內存地址來存儲更改的字符串。
如:andy改成tom,不是在原來andy指向的內存地址更改,而是新增了一個內存地址存放
對于列表的更改:是在原來列表指定的內存地址上更改
總結
以上是生活随笔為你收集整理的python对字符串和集合的内存垃圾回收机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python基础教程:filter(),
- 下一篇: Python叠加装饰器,三元表达,生成,