"Blaise Morose" <[EMAIL PROTECTED]> wrote

I have this silly piece of code that I am experimenting with:

I'm not certain but... based on this quote from the Python docs:

------
Warning: Due to the precarious circumstances under which __del__() methods are invoked, exceptions that occur during their execution are ignored, and a warning is printed to sys.stderr instead. Also, when __del__() is invoked in response to a module being deleted (e.g., when execution of the program is done), other globals referenced by the __del__() method may already have been deleted. For this reason, __del__() methods should do the absolute minimum needed to maintain external invariants. Starting with version 1.5, Python guarantees that globals whose name begins with a single underscore are deleted from their module before other globals are deleted; if no other references to such globals exist, this may help in assuring that imported modules are still available at the time when the __del__() method is called.
----------------------------

class Person:

p = Person('Jean')
d = Person('Michael')

Because you don't explicitly kill the objects the interpreter may have
deleted the class object before the instance  __del__ gets called.
What happens iof you explicity del(p) and del(d)?

Just a thought.

Alan G.

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to