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