最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中垃圾回收和del語(yǔ)句詳解

 更新時(shí)間:2018年11月15日 10:12:21   作者:Polar Snow Documentation  
Python語(yǔ)言默認(rèn)采用的垃圾收集機(jī)制是引用計(jì)數(shù)法,本文詳細(xì)的介紹了Python中垃圾回收和del語(yǔ)句詳解,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

Python中的垃圾回收算法是采用引用計(jì)數(shù), 當(dāng)一個(gè)對(duì)象的引用計(jì)數(shù)為0時(shí), Python的垃圾回收機(jī)制就會(huì)將對(duì)象回收

a = "larry"
b = a

larry這個(gè)字符串對(duì)象, 在第一行被貼了a標(biāo)簽后, 引用計(jì)數(shù)為1, 之后在第二行, 由貼上了b標(biāo)簽, 此時(shí), 該字符串對(duì)象的引用計(jì)數(shù)為

a = "larry"
b = a
del a

注意: 在Python語(yǔ)言中, del語(yǔ)句操作某個(gè)對(duì)象的時(shí)候, 并不是直接將該對(duì)象在內(nèi)存中刪除, 而是將該對(duì)象的引用計(jì)數(shù)-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這個(gè)字符串對(duì)象在第一行被貼上了a標(biāo)簽, 此時(shí)字符串對(duì)象的引用計(jì)數(shù)為1, 接著第二行又被貼上了b標(biāo)簽, 此時(shí)該字符串對(duì)象的引用計(jì)數(shù)為2, 在第三行中, del語(yǔ)言刪除了a變量(標(biāo)簽), 在后續(xù)的print中可以看出, 內(nèi)存中實(shí)際的字符串對(duì)象并沒(méi)有被刪除, del語(yǔ)言只是刪除了一個(gè)變量對(duì)該字符串對(duì)象的引用, 所以對(duì)于larry這個(gè)字符串對(duì)象來(lái)說(shuō), 效果只是引用計(jì)數(shù)-1

魔法函數(shù)之__del__

類中的__del__魔法函數(shù), 支持我們自定義清理對(duì)象的邏輯, 當(dāng)Python解釋器使用del語(yǔ)言刪除類的對(duì)象的時(shí)候, 會(huì)自動(dòng)調(diào)用類中的__del__函數(shù), 我們可以對(duì)其進(jìn)行重載

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

刪除對(duì)象

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

我們可以通過(guò)重載__del__魔法函數(shù), 自己靈活控制在del 對(duì)象的時(shí)候執(zhí)行哪些善后操作

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python編程使用NLTK進(jìn)行自然語(yǔ)言處理詳解

    Python編程使用NLTK進(jìn)行自然語(yǔ)言處理詳解

    這篇文章主要介紹了Python編程使用NLTK進(jìn)行自然語(yǔ)言處理詳解,涉及了nltk和開(kāi)發(fā)環(huán)境的簡(jiǎn)單介紹,以及SentencesSegment,SentencesSegment等內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Python緩存技術(shù)實(shí)現(xiàn)過(guò)程詳解

    Python緩存技術(shù)實(shí)現(xiàn)過(guò)程詳解

    這篇文章主要介紹了Python緩存技術(shù)實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 表格梳理解析python內(nèi)置時(shí)間模塊看完就懂

    表格梳理解析python內(nèi)置時(shí)間模塊看完就懂

    這篇文章主要介紹了python內(nèi)置的時(shí)間模塊,本文用表格方式清晰的對(duì)Python內(nèi)置時(shí)間模塊進(jìn)行語(yǔ)法及用法的梳理解析,有需要的朋友建議收藏參考
    2021-10-10
  • python?列表的查詢操作和切片

    python?列表的查詢操作和切片

    這篇文章主要介紹了python?列表的查詢操作和切片,列表是python內(nèi)置的數(shù)據(jù)結(jié)構(gòu),相當(dāng)于數(shù)組,列表中所有數(shù)據(jù)都是按順序有序排列,列表屬于序列類型,接下來(lái)一起學(xué)習(xí)下面的文章內(nèi)容吧
    2022-01-01
  • Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫(kù)表中的數(shù)據(jù)導(dǎo)出生成csv格式文件的方法

    Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫(kù)表中的數(shù)據(jù)導(dǎo)出生成csv格式文件的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫(kù)表中的數(shù)據(jù)導(dǎo)出生成csv格式文件的方法,涉及Python針對(duì)mysql數(shù)據(jù)庫(kù)的連接、查詢、csv格式數(shù)據(jù)文件的生成等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Python中判斷輸入是否為數(shù)字的實(shí)現(xiàn)代碼

    Python中判斷輸入是否為數(shù)字的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python中判斷輸入是否為數(shù)字的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2018-05-05
  • 在Python程序中操作文件之flush()方法的使用教程

    在Python程序中操作文件之flush()方法的使用教程

    這篇文章主要介紹了在Python程序中操作文件之flush()方法的使用教程,是Python入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • 一篇文章徹底弄懂Python中的if?__name__?==?__main__

    一篇文章徹底弄懂Python中的if?__name__?==?__main__

    在Python當(dāng)中如果代碼寫(xiě)得規(guī)范一些,通常會(huì)寫(xiě)上一句if '__name__'=='__main__:'作為程序的入口,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)一篇文章徹底弄懂Python中的if?__name__?==?__main__的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • python中requests庫(kù)session對(duì)象的妙用詳解

    python中requests庫(kù)session對(duì)象的妙用詳解

    這篇文章主要介紹了python中requests庫(kù)session對(duì)象的妙用詳解,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • 深度學(xué)習(xí)之GPU,CUDA和cuDNN的理解

    深度學(xué)習(xí)之GPU,CUDA和cuDNN的理解

    Cuda和cudnn是支持NVIDIA支持GPU的兩個(gè)庫(kù),分別用于高性能計(jì)算和深度神經(jīng)網(wǎng)絡(luò)計(jì)算的支持,下面這篇文章主要給大家介紹了關(guān)于深度學(xué)習(xí)之GPU,CUDA和cuDNN的理解,需要的朋友可以參考下
    2023-02-02

最新評(píng)論

海门市| 榆林市| 垣曲县| 泰顺县| 龙海市| 皋兰县| 田林县| 石狮市| 枣庄市| 凤凰县| 柳林县| 鄱阳县| 海南省| 治多县| 皋兰县| 泰州市| 四平市| 穆棱市| 剑河县| 中方县| 罗城| 都兰县| 建昌县| 台南市| 仁寿县| 新安县| 龙陵县| 都昌县| 青海省| 临潭县| 桓台县| 永嘉县| 耒阳市| 普安县| 宕昌县| 石景山区| 定州市| 集安市| 高雄市| 亳州市| 许昌县|