Yes, you are right. But from this problem, could I infer that the statement "del xxx" doesn't release the memory which xxx used?
On May 31, 11:21 pm, "Diez B. Roggisch" <[EMAIL PROTECTED]> wrote: > ai schrieb: > > > It assumes that there is a module A which have two global variables X > > and Y. If I run "import A" in the IDLE shell, then I can use A.X and > > A.Y correctly. But if I want to change the module A and then delete > > the variable Y, I find I can use A.Y just the same as before! > > In fact, I have tried all the following methods but can't remove the > > A.Y: > > execute "import A" again > > "reload(A)" > > "del A; import A" > > Yes, if you use "del A.Y", it works. But it is stupid since there are > > probably many names. In my thought, if no one references objects in A, > > "del A" will release all memory about A. But it seems that the fact is > > not. So I can not refresh the namespace to follow changes of a module > > easily and I will worry about the memory if I del a module. > > I want to know if there is a way to clear a module entirely. > > There might be other answers - but the easiest and IMHO best is to > simply restart the interpreter. Because whatever you type in there, you > could or should even (if it reaches some complexity) put in a small test > script - and execute that from the interpreter at a shell prompt. The > advantage is that you don't suffer from any side-effects e.g. IDLE has > (no Tk mainloop for example) and avoid the problems you describe > entirely. Together with a bunch of others. > > If you want/have to, you can drop into interpreter mode after script > execution with > > python -i myscript.py > > Diez -- http://mail.python.org/mailman/listinfo/python-list