Pliosauroidea 2021-08-15 12:50 采纳率: 62.5%
浏览 35
已结题

python类的__del__方法

如果定义类的时候重写了该类的__del__方法,那么该类在垃圾回收是会被正常回收么?
如果不会,该类会在什么时候被回收?

  • 写回答

1条回答 默认 最新

  • 「已注销」 2021-08-15 14:16
    关注

    不管你重不重写,回收的时候都是先调用__del__函数最后那个版本(因为之前的版本已经不复存在了),然后回收。当然,你要保证其签名为__del__(self)。
    至于什么时候回收,那要看情况了。如果你直接del(a),就调用的时候回收,如果一直没调用,如果这个对象在某个for循环之类里的局部变量的话每次循环开始时构造,结束会回收。不确定的时候你在__del__里面print一个东西然后试一下就知道了,如果需要的话每执行一段代码print一个东西

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月17日
  • 已采纳回答 8月15日
  • 创建了问题 8月15日