当我开发Python代码时,通常会在解释器中以临时方式进行测试。我会
然而,假设在
更方便的方法是如果有一些
我认为Python没有内置类似于我在这里描述的
import some_module
,测试它,发现错误,修复错误并保存,然后使用内置的reload
函数来reload(some_module)
并再次测试。然而,假设在
some_module
中我有import some_other_module
,并且在测试some_module
时我发现了some_other_module
中的一个bug并修复它。现在调用reload(some_module)
不会递归重新导入some_other_module
。我要么手动重新导入依赖项(例如reload(some_module.some_other_module)
或import some_other_module; reload(some_other_module)
),或者如果我已经更改了一堆依赖项并且失去了追踪需要重新加载的内容,那么我需要重新启动整个解释器。更方便的方法是如果有一些
recursive_reload
函数,我可以只需执行recursive_reload(some_module)
就能让Python不仅重新加载some_module
,还可以递归重新加载每个some_module
导入的模块(以及每个这些模块导入的模块等等),以便我可以确保没有使用任何旧版本的some_module
依赖其他模块。我认为Python没有内置类似于我在这里描述的
recursive_reload
函数,但是否有一种简单的方法可以将它们组合在一起?