0

稍微扩展一下这个问题。从 Python 列表中删除对象很容易,但我将有一个“忙碌”列表——频繁删除和频繁添加——所以我想防止内存泄漏。

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

  2. 如果我的假设是正确的,那么我怎样才能将它从列表中删除并同时销毁它?

如果重要的话,有问题的对象是我编写的类的实例。我计划在每次需要插入新对象时“实时”创建对象,例如

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

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

4

1 回答 1

3

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

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

如果您想保留对阻止对象被垃圾收集的对象的引用,请改用weakref引用。

于 2013-02-15T15:20:54.020 回答