2011-03-02 3 views
1

개체 인스턴스 목록 (wxPython 위젯)이 있습니다. 내 목록 내의 인스턴스가 삭제되었는지 여부를 알 수 있어야합니다. 어떻게 이런 일이 벌어 질까요?인스턴스가 삭제 된 경우 알리기

+2

만약 당신이 아직 파괴되지 않은 참조를 가지고 있다면 wxPython은 ****과 같은 내용이므로 사실이 아닐 수도 있습니다. –

답변

4

wxPython이 규칙에 따라 재생된다고 가정하고 "파괴되었습니다"라는 말은 "더 이상 참조되지 않습니다"라는 의미이므로 표준 라이브러리의 weakref 모듈을 사용하면 원하는대로 할 수 있습니다 (구체적으로 만들 때 콜백을 등록 할 수 있습니다. 약한 참조의 타겟이 파기되기 직전에 불려가는 약한 참조).

wxPython이 규칙에 따라 재생되지 않거나 해당 객체에 대해 약한 참조가 비활성화 된 경우 운이 좋지 않을 수 있습니다.

+0

+1, 쿨, 나는 당신이'약한 것'으로 그것을 할 수 있다는 것을 몰랐다. – senderle

4

wxPython 위젯은 파괴되었을 때 False입니다. 따라서 다음 작업을 수행 할 수 있습니다.

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

이것은 모든 wx.Window 파생 개체에 적용됩니다. 파손되었거나 폐기 된 경우 None이 아니지만 False이됩니다.

관련 문제