On Nov 24, 2014 1:27 AM, "Patrick Stinson" <patrickk...@gmail.com> wrote: > > How does the __del__ method have a reference to the module’s globals dict? because it references the print function?
The module's dict becomes the __globals__ dict used by the function for looking up globals and builtins. > Crazy. Is there any other way to comfort when a module is being deleted beside defining a class object with a printing dtor? Modules don't strictly have to be ModuleType. You could substitute a class with a __del__ method for the module itself for testing this. Be careful with leaving this in your production code though, as the presence of __del__ methods can interfere with garbage collection and are not advisable prior to 3.4. You can also test whether an object is still in memory by looking for it in gc.get_objects() although be warned that is an expensive call.
-- https://mail.python.org/mailman/listinfo/python-list