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

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


而不是设置退出代码并从exit()命名空间进行__main__替代?

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

关于python - 从函数中退出()是不好的形式吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12465605/

10-13 01:48