Python: Exiting script
本问题已经有最佳答案,请猛点这里访问。
我有一个小的python脚本,专门为这个问题编写的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #!/usr/bin/python3 import sys def testfunc(test): if test == 1: print("test is 1") else: print("test is not 1") sys.exit(0) try: testfunc(2) except: print("something went wrong") print("if test is not 1 it should not print this") |
我所期望的是,当test=2时,脚本应该退出。相反,我得到的是这个;
1 2 3 | test is not 1 something went wrong if test is not 1 it should not print this |
号
我不熟悉Python,但不熟悉脚本/编码。我到处搜索,每个答案都是"use sys.exit()"
当sys.exit()包含在try/except中时,它似乎具有意外的行为。如果我删除了try,它将按预期运行
这是正常行为吗?如果是这样,是否有一种硬退出脚本的方法,当test=2时,该脚本将继续执行到异常块中?
注意:这是一个示例代码,它是我打算在另一个脚本中使用的逻辑的简化版本。之所以存在try/except,是因为将使用变量调用testfunc(),如果提供的函数名无效,我希望捕获异常
提前谢谢
编辑:我还尝试了quit()、exit()、os.exit()和raise systemeexit
这里,
因为您将调用代码放在
1 2 3 4 5 6 7 8 9 | try: testfunc(2) except SystemExit as exc: sys.exit(exc.code) # reperform an exit with the status code except: print("something went wrong") print("if test is not 1 it should not print this") |