python - 如何在 IDLE 中重新加载 Python 模块?

标签 python module reload python-idle

我正在尝试了解我的工作流如何与 Python 和 IDLE 一起工作。

假设我写了一个函数:

def hello():
    print 'hello!'

我将文件保存为 greetings.py。然后在 IDLE 中,我测试函数:

>>> from greetings import *
>>> hello()
hello!

然后我修改程序,想再试一次hello()。所以我重新加载:

>>> reload(greetings)
<module 'greetings' from '/path/to/file/greetings.py'>

但是零钱没有被提取。我究竟做错了什么?如何重新加载更改的模块?

我一直在阅读一些关于 SO 的相关问题,但没有一个答案对我有帮助。

最佳答案

你需要重做这一行:

>>> from greetings import *

在你做完之后

>>> reload(greetings)

重新加载模块不起作用的原因是因为 * 实际上导入了模块中的所有内容,因此您必须单独重新加载它们。如果您执行以下操作,它将按您预期的方式运行:

>>> import greetings
>>> greetings.hello()
hello!

修改文件

>>> reload(greetings)
<module 'greetings' from 'greetings.py'>
>>> greetings.hello()
world!

关于python - 如何在 IDLE 中重新加载 Python 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6234414/

相关文章:

Python - 比较2个二维字典

entity-framework - ObjectContext.Refresh()?

ruby - ruby 类名前的::符号/运算符是什么?

tensorflow - 微调 BERT 的最后 x 层

module - git repo 中的 terraform 模块 - 如何排除 terraform init 克隆的目录?

javascript - 如果 div 位于特定位置之上,则仅重新加载页面一次

parameters - 带参数的页面自动重新加载

python - 方法 set_option 的 pandas 选项列表

python - 在 Python 中将字符串转换为 float

python - 如何从 pytest 回溯中删除库代码调用?