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