Module deconstruction

Robin Becker robin at
Mon Aug 26 18:32:38 CEST 2002

I'm seeing strangeness when modules are being deconstructed. This is
with Sam Rushing's calldll and windll. 

the windll code has approximately the following structure

import calldll

class module:
        def __init__(self,name):
                self.handle = .....

        def __del__(self):


map = {module('....'), ...}

is it reasonable that calldll.free_library appears to be None in the
__del__ method when the module is torn down. It seems as though calldll
is being destroyed before all uses are gone. If I replace the module
class __del__ with

        free_library = calldll.free_library
        def __del__(self):

then things work as intended otherwise I see exceptions which are
ignored about Nonetype objects not being callable.
Robin Becker

More information about the Python-list mailing list