Those days I was using
ipython to perform some analysis and run some of my scripts. And in this time I needed to unload and reload some modules (some of mine and third-party ones). As it was said in the issue 9072, python does not support unloading modules and it seems it will not support (an error in my opinion; since we use ipython notebooks, to unload modules could be necessary).
But to reload a module it is allowed and supported!
We can start creating the file
my_mod.py, having a function:
def fun_one ( arg1 ): return( arg1 + 2 )
Then we run
ipython into the path and load the module:
In : import my_mod In : my_mod.fun_one( 3 ) Out: 5
So now, we change the content of my_mod and we let it as:
def fun_one ( arg1, arg2 = 2 ): return( arg1 + arg2 )
To reload the module and be able to use the new version of the function we should do:
In : reload( my_mod ) Out: <module 'my_mod' from 'my_mod.py'> In : my_mod.fun_one( 3, 5 ) Out: 8