简而言之,__del__
方法相当于其它语言里的析构函数。不过,由于Python的一些特性,在使用__del__
需要注意一些问题:
-
因为垃圾收集机制处理循环引用(A使用B,B又使用了A)的时候总不尽如人意。 所以
__del__
并不总是会被调用。 -
__del__
可能在Python退出的时候被调用。此时很多变量都已经被释放, 所以__del__
对外部的依赖要尽可能的小。 -
__del__
函数内不能引入新的模块。 -
Python提供了
try/finally
这样的语法,一些资源释放的东西,最好还是放在finally
块内解决,而不是放到__del__
方法内。
标题无“转载”即原创文章,版权所有。转载请注明来源:http://besteam.im/blogs/article/48/。