delete namespaces

Jean-Michel Pichavant jeanmichel at sequans.com
Wed Mar 30 05:10:26 EDT 2011


monkeys paw wrote:
> How do i delete a module namespace once it has been imported?
>
> I use
>
> import banner
>
> Then i make a modification to banner.py. When i import it again,
> the new changes are not reflected. Is there a global variable i can
> modify?
It depends on what you want to achieve.

1/ if you want to re-import your module because it contains User data 
that may have been updated, one way is to make sure all you definitions 
are at the module level and use the execfile statement. ofc the file is 
executed, so it can be done only in a trusted environment.

2/ if you want to reload your module because you changed the code and 
want to test it, the best way to do it is to write a test file that will 
do all the tests so that restarting the test is cheap. Testing from a 
newly created python process is always the best solution, if available.

3/ if you want to do the 2/ but require a painful long prologue to your 
test, then you may want to use the builtin reload. Use it with care, 
because any existing object created from the previous module will not be 
affected, they'll still hold the previous code. "reload" solves some 
problems, but bring others, especially for the newcomer.


JM



More information about the Python-list mailing list