在对象删除时触发__del__(self),然后再删除对象自己。
如果对象没有删除,程序结束时,会自动删除对象。
class Open:
def __init__(self,filename):
print('open file.......')
self.filename=filename
def __del__(self):
print('回收操作系统资源:self.close()')
f=Open('settings.py')
del f #f.__del__()
print('----main------') #del f #f.__del__()
结果:
open file.......
回收操作系统资源:self.close()
----main------
class Open:
def __init__(self,filename):
print('open file.......')
self.filename=filename
def __del__(self):
print('回收操作系统资源:self.close()')
f=Open('settings.py')
#del f #f.__del__()
print('----main------') #del f #f.__del__()
结果:
open file.......
----main------
回收操作系统资源:self.close()
执行print('----main------') 后程序结束,自动释放对象f