我正在学习编写 Python 3 脚本以在 shell 中使用。我有一本教科书似乎说这样的脚本应该总是sys.exit(0)
用来结束脚本并返回代码 0。这真的有必要吗?
例如,假设我运行以下脚本python3 foo.py
:
import sys
sys.stdout.write('Hello world\n')
Run Code Online (Sandbox Code Playgroud)
如果我再做echo $?
响应是'0'。因此,脚本确实以代码 0 退出,并且添加sys.exit(0)
为最后一行将是多余的。
我应该放弃它,还是它仍然是一个好习惯?
sys.exit(0)
如果没有发现问题,则无需在脚本末尾使用,这不是一个好的做法。
如果您需要因错误而提前退出,并且您不关心确切的非零退出代码,则可以使用:
raise SystemExit('error message here')
Run Code Online (Sandbox Code Playgroud)
该消息将被打印,返回代码将为 1。否则,print()
该消息并使用:
sys.exit(returncode)
Run Code Online (Sandbox Code Playgroud)
以获得不同的返回码。