0
我有一个类,其中包含一个函数,我在其中构建并存储一个潜在的非常大的颠簸阵列,我读HDF5文件。 (我将数组存储为一个类对象,这样当我从文件中读取各种HDF5数据集时,我可以使用列表理解而不是手动循环。)我想要的是同时返回并删除存储的数组(即清理在return语句之后调用内存)。Python:返回语句后自动删除类对象
class MWE(object):
def __init__(self,*args):
pass
return
def example(self,**kwargs):
self.array = readLargeArrayFromHDF5File(...)
return self.array # And simultaneously clean up self.array?
我知道,我可以简单地删除使用类似del MWE.array
在我的脚本后对数组,但有什么办法可以自动清理没有我不必记住要做到这一点?
谢谢!
我还在学习,所以可以使用一些关于返回时如何清理类对象的说明。 self.array会从内存中清除吗? (因为MWE类仍然存在...)我只是想避免“array2 = MWE.example()”,然后使用两倍的内存... – aim
等待为什么你会返回一个数组,然后立即删除它。你知道同一个对象被传递给调用者,而不是它的副本吗?此外德尔删除对象的引用,你不会保存任何实际的内存。 –
@aim哦,刚刚看到你的评论。所以那些参考不是副本。当在python中复制一个对象时,你通常必须做一些非常明确的事情,比如'list_A_copy = list(list_A)'或'dict_A_copy = {key:键的值,dict_A.items()的值}' –