删除并销毁列表中的对象

时间:2013-02-15 15:17:15

标签: list object python-2.7 destroy

this question上稍微扩展一下。从Python列表中删除对象很容易,但我会有一个“忙”列表 - 经常删除和频繁添加 - 所以我想防止内存泄漏。

  1. 只是从列表中删除对象会破坏对象吗? (我假设没有。)

  2. 如果我的假设是正确的,那么如何将其从列表中删除同时销毁它?

  3. 如果重要,那么有问题的对象就是我写的一个类的实例。我计划在每次需要插入新对象时“实时”创建对象,例如

    myList.insert(index,myClass(constructorParm1,constructorParm2))
    

    因此,当我稍后需要删除以这种方式创建的一些实例时,我想确保它们不仅仅是从列表中消失,而是消失了。

1 个答案:

答案 0 :(得分:3)

在cPython中,当引用计数降为0时,对象会自动销毁

如果从列表中删除条目,则相关对象的引用计数将减少。你不需要做任何特殊的事情来破坏它,你也不应该尝试。如果对该对象的任何其他引用仍然存在,则销毁该对象将破坏另一个引用。

如果要保留对的对象的引用,请阻止对象进行垃圾回收,请改为使用weakref引用。