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.youkuaiyun.com/lis_12/article/details/53647728).

本文详细介绍了Python中__del__方法的工作原理及其注意事项。解释了如何通过del关键字减少对象引用计数,并强调了仅当对象引用计数为0时__del__方法才会被调用。同时提醒读者不要依赖__del__进行资源释放。
590

被折叠的 条评论
为什么被折叠?



