在this question上稍微扩展一下。从Python列表中删除对象很容易,但我会有一个“忙”列表 - 经常删除和频繁添加 - 所以我想防止内存泄漏。
只是从列表中删除对象会破坏对象吗? (我假设没有。)
如果我的假设是正确的,那么如何将其从列表中删除并同时销毁它?
如果重要,那么有问题的对象就是我写的一个类的实例。我计划在每次需要插入新对象时“实时”创建对象,例如
myList.insert(index,myClass(constructorParm1,constructorParm2))
因此,当我稍后需要删除以这种方式创建的一些实例时,我想确保它们不仅仅是从列表中消失,而是消失了。
答案 0 :(得分:3)
在cPython中,当引用计数降为0时,对象会自动销毁
。如果从列表中删除条目,则相关对象的引用计数将减少。你不需要做任何特殊的事情来破坏它,你也不应该尝试。如果对该对象的任何其他引用仍然存在,则销毁该对象将破坏另一个引用。
如果要保留对不的对象的引用,请阻止对象进行垃圾回收,请改为使用weakref
引用。