我有一個python對象,它基本上是其他對象實例的集合。你可以附加其他對象(它只是存儲在一個列表中)。讀取文件,例如,當它被創建:覆蓋對象實例不釋放內存?
def file_reader(file):
obj = MyCollection()
for line in file:
other_obj = line_reader(line)
obj.append(other_obj)
return obj
如果我之後嘗試覆蓋對象(通過讀取不同的文件),原始數據不會被刪除,對象只是延長。奇怪的是,這似乎發生,如果我使用不同的引用:
obj1 = file_reader(file)
obj2 = file_reader(file1)
我懷疑我有某種與循環引用的問題,但我不能完全把握的邏輯。 任何人有想法?
編輯: MyCollection的的重要組成部分看起來像:
class MyCollection(object):
def __init__(self, objs = []):
self.objs = objs
def append(self, obj):
self.objs.append(obj)
你能顯示'MyCollection的()'的代碼?我敢打賭,這個列表是一個類屬性,而不是一個實例屬性。 – jonrsharpe
您能否提供給我們,使用'MyCollection'對象的代碼?這可能會有所幫助。 – Marek
編輯該問題添加收藏類 – jramm