在atexit回调中设置退出码

3

atexit模块中注册的函数中设置退出代码的方式是否存在?而调用sys.exit(code)会产生错误且不能将退出代码设置为所需值。

d:\>python atexit_test.py
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "atexit_test.py", line 3, in myexit
    sys.exit(2)
SystemExit: 2

d:\>echo %ERRORLEVEL%
0
atexit_test.py的内容如下:

def myexit():
  import sys
  sys.exit(2)

import atexit
atexit.register(myexit)

1
Python 版本是什么?我可以在 Python 3.5.1 上重现它,但在 Python 2.7.10 中运行良好(无论是 sys.exit 还是 raising SystemExit)。你能使用正确的标签(python-2.x 或 python-3.x)吗? - Łukasz Rogalski
@Rogalski 我正在使用Python 3.5.1。 - Melebius
1个回答

1
我可以证明测试代码在Python 2.7.x (我的情况下为2.7.6) 中有效,如@Łukasz Rogalski所述。因此,我认为这是Python 3.x的一个错误,并提交了一个错误报告。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接