在python中释放deepcopy字典

在python中释放deepcopy字典,python,dictionary,Python,Dictionary,我有一个python类,我需要在其中执行 self.data = copy.deepcopy(raw_data) 原始数据是一个字典的字典,在内存中占用很多兆字节。我只需要数据一次,在其中我对数据做了一些修改,因此需要做一个deepcopy,我想在完成计算后销毁deepcopy数据 从内存中清除数据的最佳方法是什么 这样行吗 self.data = None 请注意,如果Python 3.4起作用的话,我将使用它。有人说,只要您在一段时间内不使用变量,Python就没有必要为您做这件事。有人

我有一个python类,我需要在其中执行

self.data = copy.deepcopy(raw_data)
原始数据是一个字典的字典,在内存中占用很多兆字节。我只需要数据一次,在其中我对数据做了一些修改,因此需要做一个deepcopy,我想在完成计算后销毁deepcopy数据

从内存中清除数据的最佳方法是什么

这样行吗

self.data = None

请注意,如果Python 3.4起作用的话,我将使用它。

有人说,只要您在一段时间内不使用变量,Python就没有必要为您做这件事。有人说使用garabage collector library

根据Havenard和to的说法,您可以使用gc.collect强制垃圾收集器释放未引用的内存

有关这方面的更多信息:


必须停止直接或间接引用对象。可能将self.data设置为“无”是不够的。del self.data的作用与此相同,但它没有将self.data设置为“无”,而是从self中删除属性数据


python python的正常实现使用主引用计数来确定何时可以收集对象,当引用计数降至零时,将立即收集对象。你可以使用Sy.GeFrutCuttSelf.DATA检查Self.DATA的引用计数,但是这可能会使你感到困惑,因为它本身可以引用一个对象。

注释我是Python的新成员,并且有C++背景,所以我正在寻找一个像C++删除的东西,可能是你想要的关键字。它删除引用,这将允许垃圾收集器处理它。@NightShadeQueen是的,这似乎是答案。del用于删除整个变量。谢谢你的快速回复。让我阅读文档并返回一些反馈。您似乎可以指定要传递给垃圾收集器的变量。我所看到的是,您可以调用del self.data,然后它将调用垃圾收集器。