Message60989
Logged In: YES
user_id=764593
The funny interaction with modules is probably that the
module retains a reference to the class (and vice versa),
so the class can't go away until the module does -- and a
module in sys.modules can't go away.
The __del__ methods are not called if the interpreter can't
decide which to call first. For example, if
A.attr=B
B.attr=A
then A and B form a cycle (like the class and its defining
module). If only one has a __del__ method, it gets called,
but if both do, then python doesn't know which to call
first, so it never calls either.
You may have a cycle like
module <==> class <==>instanceA
\ <==>instanceB
So that it can't decide whether to take care of instanceA
or instanceB first.
Or it might be that the __del__ methods actually are being
called, but not until module teardown has begun, so they
don't work right.
|
|
Date |
User |
Action |
Args |
2008-01-20 09:58:57 | admin | link | issue1545463 messages |
2008-01-20 09:58:57 | admin | create | |
|