كيف بيثون إدارة كائن أو حذف أو تدمير
-
28-09-2019 - |
سؤال
شباب أنا بدلا جديدة إلى الثعبان والتعلم لبناء تطبيق واجهة المستخدم الرسومية (مع 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
).