【发布时间】:2016-06-28 20:08:37
【问题描述】:
我怎样才能使一个对象坚不可摧,即使使用del 保留字(我认为这意味着强制删除)它也不会被删除?
我将对象存储在列表中,如下所示:
list = [obj1, obj2, obj3, obj4 ....]
del list[0]
我想我必须在对象类中使用 __del__() 做一些技巧,但是如何?
【问题讨论】:
-
对象仅在没有引用它们的名称时才会被删除。在那种情况下,你的对象不能被使用,那你为什么要它存在呢?
-
del并不意味着“强制删除”。 -
del删除 name,而不是对象。仅当删除指向它的所有名称时,才会删除该对象。 -
@mertyildiran:这个问题表明对
del和对象删除的误解。该问题的答案显示了更好的方法来实现该问题试图用del做的事情。 你想用del做什么?基本上,当一个对象在 Python 中被删除时,你无法控制。 Python中没有“强制删除”之类的东西。 -
@mertyildiran 这不是 C,您不分配内存块,而是创建对象并为其命名。