On 11/23/14 5:10 AM, Patrick Stinson wrote:
I am defining a single class with a destructor method that prints ‘__del__’, and running that source code string using exec with the module’s dict like so:import rtmidi importsys import types importtime importgc s= """ class A: def __del__(self): print('__del__') a = A() """ m = types.ModuleType('mine') exec(s, m.__dict__) print('deleting...') m= None print('done') and the output is: deleting... done __del__ I the “__del__" to come between “deleting…” and “done”. This is not being run from the interactive interpreter by via a .py file.
Let's look at this another way: Why do you need the module to be unloaded? Isn't it enough to have the new code loaded?
-- Ned Batchelder, http://nedbatchelder.com -- https://mail.python.org/mailman/listinfo/python-list
