Python - 使用导入时无法在终端中运行相同的脚本两次

时间:2014-07-14 19:57:00

标签: python terminal

我有一个python脚本test.py我正在努力。我想编辑并重新运行它。我在OSX上使用Terminal来运行脚本。我不能让脚本第二次运行而不退出终端并重新启动它。

# test.py
print "Howdy"

终端窗口:

$ python
>>> import test
Howdy
>>> import test
>>>

问题1:如何让脚本再次运行?

问题2:或者python设计为这样工作:

# test.py
def printStuff():
    print "Howdy"

终端:

$ python
>>> import test
>>> test.printStuff()
Howdy
>>> test.printStuff()
Howdy
>>> 

3 个答案:

答案 0 :(得分:3)

1:您可以使用reload(moduleName)执行您要执行的操作(但请参见下文)。

2:有一些不同的模式,但我通常在我的所有模块中都有一个main()函数,它有一个明确的“起始点”,否则我只会有一堆库函数。所以你或多或少地在你的例子中思考。你不应该在导入时“做东西”,除非它正在设置模块。将模块视为库,而不是脚本。

如果你想把它作为一个脚本执行(在这种情况下你不应该使用import),那么有几个选项。您可以在python脚本(Should I put #! (shebang) in Python scripts, and what form should it take?)的顶部使用shebang并直接从命令行执行它,或者您可以使用脚本中的__main__模块作为入口点({{3然后,从命令行使用python调用脚本,例如python myscript

答案 1 :(得分:1)

使用Python的 reload()方法:

答案 2 :(得分:1)

您想使用reload方法

>>> import test
Howdy
>>> reload(test)
Howdy