流暢的Python讀書筆記 --- 第八章 對象引用,可變性和垃圾回收

近期在讀「流暢的Python」這本書,想把本身的讀書筆記分享給你們,但願能幫到也對這本書感興趣可是沒時間看的各位。(文章中大部分的話和圖片摘錄總結自「流暢的Python」一書,以及python官方網站)python

章節概述:介紹對象相關概念和垃圾回收機制
章節結構:算法

  • 對象
  • 垃圾回收

具體內容:緩存

  • 對象

1.變量是什麼?
變量是附加在對象上的標註,好比定義一個變量v=a,實際上是把v分配給a這個對象,由於右邊先執行,建立了a。
2.什麼是別名?
別名就是兩個變量綁定同一個對象,==和is的區別就是,==比較值,is比較表示,因此兩個變量標註在一個對象才能is爲true,可是==只要是標註的對象的值相等或者爲一個對象,就能返回真。
3.什麼是一個對象的標識?
對象一旦建立,就會產生永不變的標識,能夠理解爲內存地址,is是比較標識,id()是返回標識整數表示。
4.元組的不變性指的是元素的標識,由於元組保存的是一系列對象的引用,可是若是元素自己是可變的,元素的值是能夠變得,可是標識不變。
5.淺複製和深複製:淺賦值是一種共享對象,深複製是建立另外一個對象,把內容複製過去。網站

  • 垃圾回收

1.Python處理對象機制:對象毫不會自行銷燬,然而,沒法獲得對象時可能會被看成垃圾回收。
2.del語句刪除名稱,而不是對象,del命令可能會致使對象被看成垃圾回收,不過是僅當刪除的變量保存的是對對象的最後一個引用,或者沒法獲得對象時。
3.垃圾回收機制主要算法:引用計數。當引用計數歸零,對象當即就被銷燬
4.弱引用:弱引用不會增長對性的引用數量,引用的目標對象稱爲所指對象。使用方法時調用weakref.ref()
5.WeakValueDictionary實現的是一種可變映射,裏面的值時對象的弱引用,被引用的對象在程序中的其餘地方被看成垃圾回收後,對應的鍵會自動從WeakValueDictionary中刪除。因此WeakValueDictionary常常用於緩存。對象

相關文章
相關標籤/搜索