Python __del__
创建实例后,实例将由引用计数来管理。当引用计数为0时,实例将被立即销毁。当实例被销毁时,解释器会查找与对象相关联的__del__()
方法并调用它。
del可以删除对象的引用,减少对象的引用计数。
使用del删除对象时,不一定会调用该对象的
__del__()
,只有引用计数为0时才会调用,谨记….
依靠__del__()
来析构实例存在一定的危险性,因为无法保证在解析器退出时会调用该方法,只有引用计数为0时才会调用__del__()。
class Foo(object):
def __del__(self):
print 'del'
f = Foo()
del f #del,此时引用计数为0
f1 = Foo()
f2 = f1
print 'del f1'
del f1 #未调用__del__,此时对象的引用计数不是0
print 'del f2'
del f2 #del,此时引用计数为0
转载请标明出处(http://blog.csdn.net/lis_12/article/details/53647728).