麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

Python中垃圾回收和del語句詳解

2020-02-15 23:41:31
字體:
來源:轉載
供稿:網友

Python中的垃圾回收算法是采用引用計數, 當一個對象的引用計數為0時, Python的垃圾回收機制就會將對象回收

a = "larry"b = a

larry這個字符串對象, 在第一行被貼了a標簽后, 引用計數為1, 之后在第二行, 由貼上了b標簽, 此時, 該字符串對象的引用計數為

a = "larry"b = adel a

注意: 在Python語言中, del語句操作某個對象的時候, 并不是直接將該對象在內存中刪除, 而是將該對象的引用計數-1

>>> a = "larry">>> b = a>>> del a>>> id(b)4572141808>>> id(a)Traceback (most recent call last): File "<input>", line 1, in <module>  id(a)NameError: name 'a' is not defined

從以上示例中可以看出, larry這個字符串對象在第一行被貼上了a標簽, 此時字符串對象的引用計數為1, 接著第二行又被貼上了b標簽, 此時該字符串對象的引用計數為2, 在第三行中, del語言刪除了a變量(標簽), 在后續的print中可以看出, 內存中實際的字符串對象并沒有被刪除, del語言只是刪除了一個變量對該字符串對象的引用, 所以對于larry這個字符串對象來說, 效果只是引用計數-1

魔法函數之__del__

類中的__del__魔法函數, 支持我們自定義清理對象的邏輯, 當Python解釋器使用del語言刪除類的對象的時候, 會自動調用類中的__del__函數, 我們可以對其進行重載

>>> class Ref:......   def __init__(self, name):...     self.name = name......   def __del__(self):...     print("刪除對象")...     del self.name...>>>>>> r = Ref(name="larry")>>> print(r.name)larry>>>>>> del r

刪除對象

>>>>>> print(r.name)Traceback (most recent call last): File "<input>", line 1, in <module>  print(r.name)NameError: name 'r' is not defined

我們可以通過重載__del__魔法函數, 自己靈活控制在del 對象的時候執行哪些善后操作

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产va在线观看免费 | 亚洲天堂成人在线 | 国产精品久久久久久久不卡 | 欧美18xxxx| 在线播放视频一区二区 | av黄色片网站 | 精品国产亚洲人成在线 | 羞羞视频免费网站含羞草 | 国产精品久久99精品毛片三a | 日韩电影av在线 | 999精品国产 | 国产羞羞视频在线观看免费应用 | 日本一级黄色大片 | 久国久产久精永久网页 | 麻豆一二区 | 精品亚洲va在线va天堂资源站 | 91福利国产在线观一区二区 | 国产一区二区三区影视 | 亚洲无av| 亚洲国产精品二区 | 国产手机av在线 | 国产精品视频成人 | 激情小说区 | 激情毛片 | 狠狠操电影| 欧美亚洲国产一区二区三区 | 四季久久免费一区二区三区四区 | xxxx hd video 69| 亚洲国产精品久久久久久久久久久 | 国产九九九九 | 久久艹艹艹 | 久久黄色影院 | 深夜免费观看视频 | 色婷婷av一区二区三区久久 | 国产成人综合在线视频 | 久久精品久久精品久久精品 | 黄色7777| 最近中文字幕一区二区 | 日韩精品一二三区 | 欧美日韩成人一区二区 | 国产精品久久久久影院老司 |