交互时在python中重新导入模块

发布于 2021-01-29 19:33:48

我知道可以做到,但是我不记得怎么做。

如何在python中重新导入模块?场景如下:我以交互方式导入模块并对其进行修改,但随后遇到错误。我修复了.py文件中的错误,然后想重新导入固定模块而不退出python。我该怎么做

关注者
0
被浏览
96
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这应该工作:

    reload(my.module)
    

    来自Python文档

    重新加载先前导入的模块。该参数必须是模块对象,因此它必须已经成功导入。如果您已使用外部编辑器编辑了模块源文件,并且想在不离开Python解释器的情况下尝试新版本,则这将非常有用。

    如果运行Python 3.4及更高版本,请执行import importlib,然后执行importlib.reload(nameOfModule)

    不要忘记使用此方法的注意事项:

    • 重新加载模块时,将保留其字典(包含模块的全局变量)。名称的重新定义将覆盖旧的定义,因此这通常不成问题,但是,如果模块的新版本未定义旧版本所定义的名称,则不会删除旧定义。

    • 如果一个模块使用导入了另一个模块的对象from ... import ...,则调用reload()另一个模块的操作并未重新定义从该模块导入的对象-解决该问题的一种方法是重新执行该from语句,另一种方法是使用import和限定名称(module.*name*)。

    • 如果模块实例化一个类的实例,则重新加载定义该类的模块不会影响实例的方法定义-它们将继续使用旧的类定义。派生类也是如此。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看