سؤال

شباب أنا بدلا جديدة إلى الثعبان والتعلم لبناء تطبيق واجهة المستخدم الرسومية (مع wypython).لدي سؤال ذات الصلة مع تدمير الكائن في بيثون.على سبيل المثالفي myFrame لدي onNew (إنشاء مستند جديد) و 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() إلى destry ويندوز.ماذا عن نموذج بيانات الكائن ؟ إن أول اتصال جديدة: self.data=DataModel(), ثم دعوة مفتوحة وإعادة تعيين self.data=DataModel.from_file(...), ماذا على سبيل المثال ؟ هل أنا بحاجة إلى التدمير نفسي أو الثعبان إدارة هذا الدمار ؟

هل كانت مفيدة؟

المحلول

الثعبان جمع القمامة.طالما لم يكن لديك أي إشارات إلى وجوه قديمة معلقة حول سيتم جمعها.

في أقرب وقت كما كنت أقول self.data = somethingElse ثم القديم self.data لن يكون لها أي إشارات إلى ذلك (ما لم كائن آخر يشير إلى الكائن الخاص بك self.data).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top