在函数中使用sys.exit()

时间:2019-03-28 05:39:44

标签: python python-3.x

我想在函数sys.exit()中使用my_func(),如何使用?

def my_func():

    try:
        some_method()
    except:
        print('Error')
        sys.exit()

if __name__ == "__main__":

    my_func()

2 个答案:

答案 0 :(得分:0)

您需要import sys才能使用它。只需将其添加到脚本顶部即可:

import sys

def my_func():
    try:
        some_method()
    except:
        print('Error')
        sys.exit()

if __name__ == "__main__":
    my_func()

答案 1 :(得分:0)

我看到了三个编程问题。除了丢失的import sys之外,您还标记了一个错误,但是只需调用sys.exit()即可退出,该退出以零指示调用者成功-它需要退出非零以指示错误。最后,当错误消息确实应该转到sys.stdout时,将错误消息打印到sys.stderr。重做您的代码:

import sys

def my_func():

    try:
        some_method()
    except:
        print('Error', file=sys.stderr)
        sys.exit(1)

if __name__ == "__main__":

    my_func()

幸运的是,Python允许我们通过做以下事情来组合最后两个问题:

import sys

def my_func():

    try:
        some_method()
    except:
        sys.exit('Error')

if __name__ == "__main__":

    my_func()

这将退出非零值并将消息打印到sys.stderr