Python如何在处理完类对象后释放内存?

8
我使用 None关键字来删除一个类对象。
 class demo:
   class members

 obj= demo()
 some processing
 obj=None

使用 None,内存会被释放吗?

我发现可以使用 del 删除一个类对象。或者我应该使用

   del obj

如何释放内存?

在删除类对象时,使用del和None的区别以及释放内存或调用垃圾回收有什么不同呢?

1个回答

12

当一个Python对象没有被引用时,它就会被释放。

obj重新绑定为None可以减少对该对象的引用次数,而del obj也会这样做。在两种情况下,如果obj是最后一个引用该对象的变量,则该实例将被清除。

那么区别在于你之后如何使用obj。重新绑定会保留该变量(现在绑定到None),del则完全删除它,你会得到一个NameError。你可以自行选择,但这不会影响实例从内存中被清除的方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接