我试图理解我的工作流程如何使用python和idle。
假设我写了一个函数:

def hello():
    print 'hello!'

我将文件保存为greetings.py。然后在空闲时,我测试功能:
>>> from greetings import *
>>> hello()
hello!

然后我更改程序,并再次尝试hello()。所以我:
>>> reload(greetings)
<module 'greetings' from '/path/to/file/greetings.py'>

然而,这一变化并未得到重视。我做错什么了?如何重新加载已更改的模块?
我读了很多相关的问题,但是没有一个答案对我有帮助。

最佳答案

您需要重做此行:
>>> from greetings import *
在你这样做之后
>>> reload(greetings)
重新加载模块不起作用的原因是*实际上导入了模块内的所有内容,因此必须单独重新加载这些内容。如果您执行以下操作,它将按您预期的方式工作:

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

更改为文件
>>> reload(greetings)
<module 'greetings' from 'greetings.py'>
>>> greetings.hello()
world!

10-07 15:44