del与__del__()的关系

发布时间 2023-09-07 23:33:29作者: fangpinz

Note:

  1. 解释器时刻在管理着所有对象的引用计数.

  2. 当解释器发现某对象的引用计数为0时,会销毁此对象(即会释放此对象占用的内存空间),并在销毁此对象之前调用此对象的__del__()方法.

当你使用del关键字删除一个对象的引用标识时, 解释器如果发现此对象的引用计数不为0(即还有其他引用标识引用了此对象),那么解释器不会销毁此对象,也就不会调用此对象的__del__()方法.

也就是说,使用del关键字删除一个对象的引用标识时,如果这个对象的唯一引用标识被你删除了,才会触发解释器调用此对象的__del__()方法.