Python3:为什么在重新分配新对象变量后调用__del__?

时间:2019-04-26 08:44:07

标签: python-3.x

假设我在Python中具有以下代码:

class Test:
    def __del__(self):
        print("del is called")


a = Test()
a = Test()

产生以下输出:

`del is called`

这是为什么,其背后的概念是什么?

每次重新分配后都调用“ del”吗?

1 个答案:

答案 0 :(得分:2)

之所以调用

__del__是因为不再有对原始a的引用,从而导致对其进行垃圾回收。有关详细信息,请参见the Python docs

您只能获得一次输出,因为

  

不能保证在解释器退出时仍然存在的对象调用__del__()方法。