我经常在Python解释器中测试我的模块,当我看到错误时,我会快速更新.py文件。但是我如何让它反映在解释器上呢?所以,到目前为止,我一直在退出并重新进入解释器,因为重新导入文件再次不适合我。
当前回答
import sys
del sys.modules['module_name']
其他回答
不确定这是否完成了所有预期的事情,但你可以这样做:
>>> del mymodule
>>> import mymodule
这里有一个很好的解释,说明你的依赖模块不会被重新加载,以及可能产生的影响:
http://pyunit.sourceforge.net/notes/reloading.html
pyunit解决这个问题的方法是通过覆盖__import__来跟踪依赖模块,然后从sys. exe中删除每个模块。模块并重新导入。不过他们可能只是装弹而已。
蜻蜓的回答对我有用(python 3.4.3)。
import sys
del sys.modules['module_name']
下面是一个较低层次的解决方案:
exec(open("MyClass.py").read(), globals())
上面所有关于reload()或imp.reload()的答案都已弃用。
Reload()不再是python 3中的内置函数,并且imp. Reload()被标记为已弃用(参见help(imp))。
最好使用importlib.reload()。
在Python 3中,行为会发生变化。
>>> import my_stuff
... 用my_stuff做一些事情,然后:
>>>> import imp
>>>> imp.reload(my_stuff)
你会得到一个全新的,重新加载的my_stuff。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录