析构方法,当对象在内存中被释放时(也就是实例执行完了,实例的内存就会自动释放,这时候就会触发),自动触发执行。

当程序结束时,python只会回收自己的内存空间,即用户态内存,而操作系统的资源则没有被回收,这就需要我们定制__del__,在对象被删除前向操作系统发起关闭数据库链接的系统调用,回收资源

class foo:
    def __init__(self,name):
        self.name = name

    def __del__(self):
        print('del触发了')

f = foo('123')
del f.name   #删除f.name 这个属性的时候不会触发析构方法
print('--->') 
#以上执行完后,就触发了析构方法:del触发了
结果:
  --->
   del触发了

 

class foo:
    def __init__(self,name):
        self.name = name

    def __del__(self):
        print('del触发了')

f = foo('123')
del f   #删除实例对象,这时候就会触发析构方法 
print('--->')
结果:
 del触发了
--->

 

 





posted on 2018-05-21 15:26  Python哥  阅读(1051)  评论(0编辑  收藏  举报