how to "reimport" module to python then code be changed after import how to "reimport" module to python then code be changed after import python python

how to "reimport" module to python then code be changed after import


For Python 2.x

reload(foo)

For Python 3.x

import importlibimport foo #import the module here, so that it can be reloaded.importlib.reload(foo)


In addition to gnibbler's answer:

This changed in Python 3 to:

>>> import imp>>> imp.reload(foo)

As @onnodb points out, imp is deprecated in favor of importlib since Python 3.4:

>>> import importlib>>> importlib.reload(foo)


IPython3's autoreload feature works just right.

I am using the actual example from the webpage. First load the 'autoreload' feature.

In []: %load_ext autoreloadIn []: %autoreload 2

Then import the module you want to test:

In []: import fooIn []: foo.some_function()Out[]: 42

Open foo.py in an editor and change some_function to return 43

In []: foo.some_function()Out[]: 43

It also works if you import the function directly.

In []: from foo import some_functionIn []: some_function()Out[]: 42

Make change in some_function to return 43.

In []: some_function()Out[]: 43