您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Python中重新加载模块的功能?

如何在Python中重新加载模块的功能?

您想要的是可能的,但是需要重新加载两件事……首先reload(foo),但是您还必须这样做reload(baz)(假设baz是包含该from foo import bar语句的模块的名称)。

至于为什么…foo第一次加载时,将foo创建一个bar对象,其中包含一个对象。当您导入barbaz模块,它存储到一个参考bar。当reload(foo)调用时,foo对象被消隐,并且该模块重新执行。这意味着所有foo引用仍然有效,但是bar已经创建了一个新对象…因此,已导入到某处的所有引用仍然是对 bar对象的引用。通过重新加载baz,使它重新导入新的bar

或者,您可以只import foo在模块中执行操作,并始终调用foo.bar()。这样,无论何时reload(foo),您都将获得最新的bar参考。

注意:从Python 3开始,首先需要通过导入reload函数 from importlib import reload

python 2022/1/1 18:46:45 有336人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶