Python如何管理对象删除或破坏
-
28-09-2019 - |
题
伙计们,我是Python的新手,并学习它以构建GUI应用程序(与Wypython)。我有一个与Python中对象破坏有关的问题。例如,在我的框架中,我有新的(创建新文档)和onopen(打开文件)方法。
简而言之,看起来像这样。
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可以解决这一破坏?
解决方案
Python有垃圾收集。只要您没有对挂在周围的旧物体的任何引用,就会收集。
您说 self.data = somethingElse
然后是老 self.data
不会有任何引用(除非另一个对象对您的对象有参考 self.data
).
不隶属于 StackOverflow