从函数内部 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 还意味着终止点需要知道实际的状态代码,而不是它遇到的错误类型。当然,这可以通过一组常量来解决。不过,使用异常还有其他优势:如果一种方法失败,您可以尝试另一种方法而无需重新输入,或者打印一些事后调试信息。
