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()的值}' –