__del__()方法

__del__()方法用来销毁实例化对象.

在编写程序时, 如果之前创建的对象不再使用, 最好在适当的位置将其销毁, 释放其占用的内存.

注解

大多数情况下, Python开发者不需要手动进行垃圾回收, 因为Python有自动的垃圾回收机制, 能自动销毁不需要使用的对象.

无论是手动销毁, 还是Python自动回收, 都会调用__del__()函数.

Python采用自动引用计数的方式实现垃圾回收机制. 该方法的核心思想是: 每一个Python对象都会配置一个计数器, 初始Python实例对象的计数器值都为0, 如果有变量引用该实例对象, 其计数器的值会加1; 反之, 每当一个变量取消对该实例对象的引用, 计数器会减1. 如果一个Python对象的计数器值为0, 则表明没有变量引用该对象, 即证明程序不再需要它, 此时Python就会自动调用__del__()方法将其回收.

需要注意的是, 如果我们重写子类的__del__()方法, 则必须显式调用父类的__del__()方法,这样才能保证在回收子类对象时, 其占用的资源(可能包含继承自父类的部分资源)能被彻底释放.