del x与x的区别=是否没有回收内存?

问题描述 投票:0回答:1

我想在下面由self.x表示的类中回收实例变量的内存。

我应该使用命令del self.x;还是self.x=None?他们有什么区别?假定将命令放入类的__del____exit___函数中。

python memory-management garbage-collection del
1个回答
0
投票

首先要了解的是,del self.xself.x = None都不会释放很多内存。它们两者的作用都是将self.x引用的对象的引用计数器减一。然后,如果该对象的计数器在运行垃圾收集器时已达到0,则将释放内存]

由于两者之间的差异,您将无法读取值self.x,因为del self.x将从实例字典中删除xself.x = None只是将self.x对象重新分配为无。

© www.soinside.com 2019 - 2024. All rights reserved.