Domanda

ragazzi, io sono piuttosto nuovo per python e di apprendimento per costruire un'applicazione GUI (con wypython). Ho una domanda in relazione con la distruzione oggetto in pitone. per esempio. in MyFrame ho onNew (creare un nuovo documento) e onOpen (aprire un file) metodo.

In breve, sembra che questo.

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)

Ora, voglio prendere in considerazione "se l'utente clicca aperto o nuovo di nuovo, dopo che fai clic o prima".

così per le classi di finestra, ho potuto chiamare il self.viewwindow.Destroy() per Destry le finestre. per quanto riguarda l'oggetto del modello di dati? Se io chiamo primo nuovo: self.data=DataModel(), quindi chiamare aperto e riassegnare self.data=DataModel.from_file(...), per quanto riguarda l'istanza precedente? Devo Destruct io stesso o Python gestire questa distruzione?

È stato utile?

Soluzione

Python ha garbage collection. Finché non si hanno riferimenti al vecchio oggetto appeso intorno ad esso saranno raccolti.

Non appena si dire self.data = somethingElse poi il vecchio self.data non avrà alcun riferimenti ad esso (a meno che un altro oggetto aveva un riferimento alla self.data del vostro oggetto).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top