Python - 在使用导入时无法在终端中运行相同脚本两次
我正在处理一个叫做 test.py
的Python脚本。我想对它进行一些修改,然后重新运行。现在我在OSX的终端上运行这个脚本,但我发现每次想要第二次运行脚本时,都必须退出终端再重新打开。
# 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 个回答
1
使用Python的reload()方法:
1
你想要使用 reload 方法
>>> import test
Howdy
>>> reload(test)
Howdy
3
1: 你可以用 reload(moduleName)
来实现你想做的事情(但下面还有一些注意事项)。
2: 有几种不同的写法,但我通常会在我的每个模块里放一个 main()
函数,这样就有了一个明确的“起点”,或者我会只放一些库函数。所以你在例子里想的差不多。一般来说,导入模块的时候不应该“做事情”,除非是为了设置模块。可以把模块想象成一个库,而不是一个脚本。
如果你想把它当作脚本来执行(在这种情况下你就不应该使用 import
),那么有几种选择。你可以在你的 Python 脚本顶部加一个 shebang(我应该在 Python 脚本中加 #!(shebang)吗?应该是什么样的格式?),然后直接从命令行执行,或者你可以在脚本中使用 __main__
模块作为入口点(https://docs.python.org/2/library/main.html),然后用命令行调用这个脚本,比如 python myscript
。