方法的概述:
当一个对象被删除或者被销毁时,python解释器也会默认调用一个方法,这个方法为__ del __ ()方法,也被称为析构方法。
类似于超市的“欢迎光临”与“欢迎下次光临”。
析构函数的定义
class Animal(object):
def __init__(self,name):
print("__init__方法被调用")
#析构方法,当对象被销毁时Python解释器会自动调用
def __del__(self):
print("__def__方法被调用")
print("%s 对象被销毁"%self.name)
dog = Animal('旺财')
-
程序结束时自动调用__ del__ 方法
输出结果为:
就类似于“卸磨杀驴”,“过河拆桥” >_<
-
对象被删除时也会自动调用__ del__ 方法,如下代码中我们利用del手动删除dog对象
class Animal(object): def __init__(self,name): print("__init__方法被调用") #析构方法,当对象被销毁时Python解释器会自动调用 def __del__(self): #主要的应用就是来操作 对象的释放 一旦释放完毕 对象就不能使用 print("__def__方法被调用") print("%s 对象被销毁"%self.name) dog = Animal('旺财') #手动清理删除对象,会执行__del__函数 del dog input('程序等待中……')
从下面输出结果中我们可以看出每当我们调用del dog 这条语句时__ del__ 方法被执行了
析构方法总结
-
当整个程序脚本执行完毕后会调用__ del__ 方法
-
当对象被手动销毁时也会自动调用__ del__ 方法
-
析构函数一般用于资源回收,利用__ del__ 方法销毁对象,回收内存等资源