Python 如何管理对象删除或销毁
大家好,我刚开始学习Python,想用它来做一个图形界面应用(用wypython)。我有个关于Python中对象销毁的问题。
简单来说,我的代码大概是这样的。
def onNew
self.data=DataModel()
self.viewwindow=ViewWindow(self.data)
def onOpen
dlg = wx.FileDialog(self, "Open file", os.getcwd(), "", "*.*", wx.OPEN)
if dlg.ShowModal() == wx.ID_OK:
self.data=DataModel.from_file(...)
self.view=View(self.data)
现在,我想考虑一下“如果用户在之前点击过打开或新建后,再次点击这两个选项,会发生什么”。
对于窗口类,我可以调用 self.viewwindow.Destroy()
来销毁窗口。那么对于数据模型对象呢?如果我先调用新建:self.data=DataModel()
,然后再调用打开,并重新赋值 self.data=DataModel.from_file(...)
,那之前的实例怎么办?我需要自己去销毁它吗,还是Python会自动处理这个销毁?
1 个回答
2
Python有垃圾回收功能。只要你没有任何地方还在使用旧的对象,它就会被清理掉。
当你执行 self.data = somethingElse
这行代码时,旧的 self.data
就不会再有任何引用了(除非其他对象还在使用你对象的 self.data
)。