使用 sys.exit() 包装函数调用的原因是什么?

What are the reasons to use sys.exit() to wrap a function call?

在 Anaconda 附带的几个 Python 脚本中,sys.exit() 应用于 main() 函数。这是启动 jupyter notebook 的脚本示例:

import re
import sys

from jupyter_core.command import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

使用 sys.exit() 作为包装函数 main() 调用的目的是什么?根据 Python 文档 sys.exit() 只是引发了一个 SystemExit 异常,表示有意退出解释器 (https://docs.python.org/3/library/sys.html#sys.exit)。

谢谢。

阅读您链接的文档的下一部分:

sys.exit([arg]) Raise a SystemExit exception, signaling an intention to exit the interpreter.
The optional argument arg can be an integer giving the exit status.

因此该参数用作当前进程的exit code

在您提到我们有 sys.exit(main()) 的情况下,main() 函数本身 returns 一个整数,具体取决于它的结束方式,然后作为退出代码传递给 sys.exit