【问题标题】:Python how to release the memory for class object after processing it?Python如何在处理后释放类对象的内存?
【发布时间】:2015-05-31 16:30:48
【问题描述】:

我使用 None 关键字来删除一个类对象。

 class demo:
   class members

 obj= demo()
 some processing
 obj=None

使用None会释放内存吗?

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

   del obj

释放内存?

使用del和None删除类对象和释放内存或调用垃圾回收有什么区别?

【问题讨论】:

    标签: python class python-2.7 object memory


    【解决方案1】:

    Python 对象在不再引用对象时被释放。

    obj 重新绑定到None 会减少对对象的引用计数,del obj 也会减少。在两种情况中,如果 obj 是对它的最后引用,则该实例将被清除。

    不同之处在于之后如何使用obj。重新绑定保留变量(它现在绑定到None),del 将它完全删除,你会得到一个NameError。您选择的是您的选择,它不会影响实例从内存中清除的方式。

    【讨论】:

      猜你喜欢
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      • 2019-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 2014-12-30
      相关资源
      最近更新 更多