Skip to main content
 首页 » 编程设计

python之从函数中 exit() 是一种错误的形式吗

2025年05月04日14dflying

从函数内部 exit() 的形式不好吗?

def respond_OK(): 
    sys.stdout.write('action=OK\n\n') 
    sys.stdout.flush() # redundant when followed by exit() 
    sys.exit(0) 

而不是从 __main__ 命名空间设置退出代码和 exit()ing?

def respond_OK(): 
    global exit_status 
    sys.stdout.write('action=OK\n\n') 
    sys.stdout.flush() 
    exit_status = 0 
 
sys.exit(exit_status) 

从功能的角度来看,差异可以忽略不计,只是想知道在形式上的共识是什么。如果你在别人的代码中发现了先验,你会再看一遍吗?

请您参考如下方法:

我更愿意看到从主入口点引发和处理的异常,其类型被转换为退出代码。在 Python 中子类异常非常简单,几乎很有趣。

正如此答案的评论中所述:使用 sys.exit 还意味着终止点需要知道实际的状态代码,而不是它遇到的错误类型。当然,这可以通过一组常量来解决。不过,使用异常还有其他优势:如果一种方法失败,您可以尝试另一种方法而无需重新输入,或者打印一些事后调试信息。