Сообщаем, уничтожен ли экземпляр

1

У меня есть список экземпляров объектов (виджеты wxPython). Я хотел бы узнать, был ли экземпляр внутри моего списка уничтожен. Как это можно сделать?

  • 2
    Я хотел бы сказать, что если у вас все еще есть ссылка на них, что они не были уничтожены, но wxPython - это такой кусок ****, что он может не соответствовать действительности.
Теги:
list
instance
wxpython

3 ответа

4
Лучший ответ

Предполагая, что wxPython играет по правилам и "уничтожен" означает "больше не ссылается", тогда модуль weakref в стандартной библиотеке должен позволять вам делать то, что вы хотите (в частности, вы можете зарегистрировать обратный вызов, когда создавая слабую ссылку, которая вызывается непосредственно перед уничтожением цели слабой ссылки).

Если wxPython не играет по правилам или отключил слабые ссылки для своих объектов, вам может быть не повезло.

  • 0
    +1, круто, я не знал, что ты можешь сделать это со weakref .
4

Виджеты wxPython False, когда они уничтожены. Поэтому вы можете просто сделать это:

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

Это применимо ко всем wx.Window производным объектам. Если он был уничтожен или удален, он не будет None, но будет False.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню