Frederic Rentsch wrote:
I develop in an IDLE window.

Module M says 'from service import *'.
Next I correct a mistake in function 'service.f'.
Now 'service.f' works fine.

I do 'reload (service); reload (M)'.
The function 'M.f' still misbehaves.

'print inspect.getsource (service.f)' and
'print inspect.getsource (M.f)' shows the same corrected code.
'print service.f' and 'print M.f' show different ids.

So I do 'del M; reload (M)'. Nothing changes.

I delete M again and run gc.collect () to really clean house. I reload M again and still nothing changes. The id of the reloaded function 'M.f' is still the same as it was before the purge and so M.f still isn't fixed. I know I have more radical options, such as starting a new IDLE window. That would save me time, but I'd like to take the opportunity to understand what
is happening. Surely someone out there knows.

Frederic



Hi,

Don't use reload, this is nothing but a trap, espacially if your using it to update your objects with the code you are writting.

JM

PS : You're misusing the del statement. It does not remove any object from mmory, however, it removes the reference to it, the object is still in memory. They are very few cases where del is usefull in python, so try to avoid using it as well.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to