假设我在Python中具有以下代码:
class Test:
def __del__(self):
print("del is called")
a = Test()
a = Test()
产生以下输出:
`del is called`
这是为什么,其背后的概念是什么?
每次重新分配后都调用“ del”吗?
答案 0 :(得分:2)
__del__
是因为不再有对原始a
的引用,从而导致对其进行垃圾回收。有关详细信息,请参见the Python docs。
您只能获得一次输出,因为
不能保证在解释器退出时仍然存在的对象调用
__del__()
方法。