marilyn at deliberate.com
Sun Mar 14 03:27:03 EST 2004
On Sat, 13 Mar 2004, Rich Krauter wrote:
> On Sat, 2004-03-13 at 20:44, Marilyn Davis wrote:
> > I can't even give this one a good subject line, I'm so clueless.
> > I'm trying to make something meaningful using __getattribute__.
> > What a bear to stop all the infinite loops!
> > But, finally, I have all that under control.
> > So, my classes are:
> > Logger object
> > /|\ /|\ /|\
> > | | |
> > Watched -------------------- |
> > /|\ list
> > | /|\
> > | |
> > WatchedList ---------------------
> > All is cool as long as I don't implement Logger.__del__
> > But if I do, crash-city when an object goes away:
> > Exception exceptions.AttributeError: "'NoneType' object has no
> > attribute 'close'" in <bound method WatchedList.__del__ of > ignored
> > If anyone has time and inclination, could you help?
> > Thank you so much.
> > Marilyn Davis
> > #!/usr/bin/env python2.2
> > '''New style classes have __getattribute__ which intercept
> > all references to attributes, ones that exist and don't
> > exist. We'll make a Watched class that logs all accesses and
> > assignments.'''
> > import time
> > class Logger:
> > def __init__(self, name):
> > self.file = open(name, 'w')
> > def logit(self, entry):
> > self.file.write(time.ctime(time.time()))
> > self.file.write('\n' + entry + '\n')
> > self.file.flush()
> > # def __del__(self):
> > # self.file.close()
> Hi Marilyn,
> I added this to the Watched class, and it seemed to help:
> def __del__(self):
Did you do anything else? I still get the same crash. You don't?
What version of python?
> Also, I wouldn't use 'file' as an attribute name. It's in synonym for
I didn't know that.
Thank you. I changed that too.
But I'm still stumped.
Thank you for beating your head against this too.
> Hope that helps.
> Tutor maillist - Tutor at python.org
More information about the Tutor