2011-03-02 60 views
1

我有一個對象實例列表(wxPython小部件)。我希望能夠判斷列表中的實例是否已被銷燬。怎麼會這樣呢?告訴一個實例是否已被銷燬

+2

我會*想*說,如果你仍然有一個引用他們,他們沒有被銷燬,但wxPython是這樣一塊****,它可能不會成立。 – 2011-03-02 02:34:35

回答

4

假設wxPython正在按照規則進行播放,並且「銷燬」意味着「不再被引用」,那麼標準庫中的weakref模塊應該讓你做你想做的事情(具體來說,創建時可以註冊一個回調在弱參考目標被破壞之前調用的弱參考)。

如果wxPython沒有按照規則播放,或者禁用了其對象的弱引用,那麼您可能倒黴了。

+0

+1,很酷,我不知道你可以用'weakref'來做到這一點。 – senderle 2011-03-02 04:37:39

4

當它們被銷燬時,wxPython小部件是False。所以你可以簡單地做到這一點:

if self.textCtrl: 
    self.textCtrl... 
else: 
    return # textCtrl is destroyed 
0

這適用於所有wx.Window派生的對象。如果它已被銷燬或處置,它不會是None,但它將是False

相關問題