>>> from foo import bar
successful to be imported
>>> from foo import bar
>>>
>>> reload(bar)
successful to be imported
<module 'foo.bar' from 'foo/bar.pyc'>
如果你使用的 python3 那方法就多了,详细请看下面3 X/ J% [; T7 ~) ~9 m
重载模块方法二; q$ j* u0 c& X4 d# }7 C
如果你使用 Python3.0 -> 3.3,那么可以使用 imp.reload 方法8 b6 P# N% P) N
>>> from foo import bar
successful to be imported
>>> from foo import bar
>>>
>>> import imp
>>> imp.reload(bar)
successful to be imported
<module 'foo.bar' from '/Users/MING/Code/Python/foo/bar.py'>
>>> from foo import bar
successful to be imported
>>> from foo import bar
>>>
>>> import importlib
>>> importlib.reload(bar)
successful to be imported
<module 'foo.bar' from '/Users/MING/Code/Python/foo/bar.py'>
重载模块方法四9 n1 o3 [2 X" d T) O7 d- r
如果你对包的加载器有所了解,还可以使用下面的方法4 }( G, P2 O1 h9 t- z2 l- M
>>> from foo import bar
successful to be imported
>>> from foo import bar
>>>
>>> bar.__spec__.loader.load_module()
successful to be imported
<module 'foo.bar' from '/Users/MING/Code/Python/foo/bar.py'>
重载模块方法五7 c4 h2 P% V" U8 V" u% }
既然影响我们重复导入的是 sys.modules,那我们只要将已导入的包从其中移除是不是就好了呢?) \, G8 U) a4 C k, N1 F1 P# V& l