Cleanup when a object dies

Benjamin musiccomposition at gmail.com
Wed Jan 23 22:17:24 EST 2008


On Jan 22, 11:29 pm, Raymond Hettinger <pyt... at rcn.com> wrote:
> On Jan 22, 7:54 pm, Benjamin <musiccomposit... at gmail.com> wrote:
>
> > I writing writing a class to allow settings (options, preferences) to
> > written file in a cross platform manner. I'm unsure how to go a about
> > syncing the data to disk. Of course, it's horribly inefficient to
> > write the data every time something changes a value, however I don't
> > see how I can do it on deletion. I've read that __del__ methods should
> > be avoided. So am I just going to have to force the client of my
> > object to call sync when they're done?
>
> Lots of ways
> 1. Try the atexit module
> 2. Use a weakref callback
So, I can keep a global list weakrefs to all the objects of my class
that have been created. Then have the callback call sync on them?
> 3. Embed a client callback in a try/finally.
> 4. Or, like you said, have the client call a sync() method -- this is
> explicit and gives the client control over when data is written.
>
> Raymond




More information about the Python-list mailing list