首頁  >  文章  >  後端開發  >  小議關鍵字del與實例方法__del__(self)

小議關鍵字del與實例方法__del__(self)

巴扎黑
巴扎黑原創
2016-11-26 10:53:471526瀏覽

python中有很多類似__del__(self)這樣的特殊方法,有一些比如__gt__()、__le__()等等從名字就可猜出其大概功能,但有些卻不能這樣這樣隨意猜測(當然也有可能是只有我一個人會這樣),例如這裡即將登場的__del__()和del,以前我以為當del一個物件時,__del__()就會被調用,然而在經歷了一次次的筆試失敗後,我才開始審查起這些較為細微的地方了^_^ ! 
閒話少說,進入正題! 
我們知道del是刪除一個對象,其實準確的說,應該是使該對象的引用數減一。但是注意,並不是每次調用它的時候,__del__()就會調用,因為__del__()是在該對象的引用計數降為0時才會被調用,示例為證:

>>> class C:
        def __del__(self):
        print("I'm vanishing...")
>>> c = C()
>>> b = c            # 注意,此时对C()的引用计数为2
>>> del b
>>>                  # 瞧,什么输出都没有,说明__del__()并没调用
>>> del c
I'm vanishing...     # 引用计数降为0后才被调用
>>>


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn