夥計們,我對Python非常陌生並且學習它來構建gui應用程序(使用wypython)。我有一個與python中的對象破壞有關的問題。 例如在myFrame中我有onNew(創建一個新文檔)和onOpen(打開文件)方法。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會管理這個破壞?
* shudder * wxPython喜歡用底層C++對象的生命週期來做自己的事情,所以不要相信Python能夠做正確的事情。 – 2010-10-07 08:31:38
你好,AaronMcSmooth,你的意思是wxpython有GC並且值得信賴,而python是不可信的? – pepero 2010-10-07 08:40:21
我不推薦使用GUI工具包來學習Python;從控制檯工具開始學習語言,以免由於特定GUI的API怪異而導致不良習慣和誤解。大多數GUI工具包都綁定到一個較低級別的API上,而這個API並不是用Python設計的,所以它們不像從一開始就爲Python設計的模塊那麼好。 – 2010-10-07 08:49:09