python的析構方法__del__
阿新 • • 發佈:2018-07-09
sans normal ima author ffffff 分享 image self 並不會
#!/usr/bin/env python # -*- coding: utf-8 -*- # File : 析構方法del.py # Author: HuXianyong # Date : 2018/7/9 class Foo: # 初始化方法 # 創建完對象後會自動被調用 def __init__(self, name): print('__init__方法被調用') self.name = name # 析構方法 # 當對象被刪除時,會自動被調用,然後釋放內存 def __del__(self): print("腳本運行結束,釋放內存") # 創建對象 f1 = Foo("hxy") # 刪除對象 del f1.name # print(f1.name) #del f1 print('這應該是腳本的最後一句!')
對象的__del__是對象在被gc消除回收的時候起作用的一個方法,它的執行一般也就意味著對象不能夠繼續引用
當我們刪除的是類的屬性的時候並不會去調用__del__方法,所以我們先print出來然後才回去調用__del__方法,
應為__del__方法只會在內存釋放的時候才回去調用到它
但是我們如果刪除的是f1這個類的實例的話就會立即釋放內存,del就會先於print被調用
python的析構方法__del__