如何在控制台中工作时轻松重新加载/重新导入模块

时间:2018-06-13 11:59:22

标签: python read-eval-print-loop

在处理模块时,我使用repl(python控制台)来测试功能。

我试图解决的问题很容易重新加载模块并在修改后重新导入模块对象。

示例显示了问题。

在控制台中,我开始测试包a.b.c中的函数

>>> from a.b.c import *
>>> myFunction(1)
wrong answer

我回到文本编辑器并修复myFunction 现在我想重新测试它(我不想杀死repl并重新启动它,因为我可能有一些我想重用的测试变量)

所以我必须做这样的事情:

>>> import a.b.c
>>> from importlib import reload
>>> reload(a.b.c)
>>> from a.b.c import *
>>> myFunction(1)
hopefully the right answer

我想编写一个可以一次性重新加载和重新导入*的函数。

理想情况下,我想用

之类的内容替换上一个会话
>>> myTestReload(a.b.c)
>>> myFunction(1)
hopefully the right answer

在myTestReload()函数中,我可以使用reload(a.b.c)重新加载修改过的模块,但我找不到相同的方法from a.b.c import *

1 个答案:

答案 0 :(得分:2)

这将重置 }); } feed.run(); 这是globals的示例。

itertools