【发布时间】:2011-07-27 20:53:21
【问题描述】:
我在this useful Q&A 中看到可以使用reload(whatever_module) 或在Python 3 中使用imp.reload(whatever_module)。
我的问题是,如果我说 from whatever_module import * 导入会怎样?那么当我使用reload() 时,我没有whatever_module 可以参考。你们会因为我把整个模块扔进全局命名空间而对我大喊大叫吗? :)
【问题讨论】:
-
关于你的最后一个问题:是的。
-
(1) 鉴于这个问题是在 4 月 1 日提出的(即使是两年前),我本以为答案会更幽默一些。 (2) Python 教程说“但是 [importing * from a module] 可以在交互式会话中保存输入;在我看来,这正是需要重新加载的情况(您刚刚修复了您正在交互测试的函数中的错误,并且希望不要离开解释器来保留您的其他测试数据)。(3)Catskul 确实提供了对所提出问题的唯一正确答案;请接受并投票!
-
Catskul 的答案很好,但不是“唯一正确”的答案:它不必要地创建了一个通常不在原始代码中的新符号
X(有关如何避免,请参阅 Ohad Cohen 或我的答案这种副作用)。
标签: python python-import python-module