Python退出命令-为什么要使用这么多?何时使用每个命令?

发布于 2021-02-02 23:16:13

似乎python支持许多不同的命令来停止脚本执行。
我发现的选择是: quit()exit()sys.exit()os._exit()

我错过了吗?它们之间有什么区别?你何时会使用它们?

关注者
0
被浏览
92
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    让我给他们一些信息:

    1. quit()SystemExit在幕后提出异常。

    此外,如果你打印它,它将给出一条消息:

    >>> print (quit)
    Use quit() or Ctrl-Z plus Return to exit
    >>>
    

    包含此功能是为了帮助不了解Python的人。毕竟,新手尝试退出Python的最有可能的事情之一就是输入quit。

    然而,quit应该不是在生产代码中使用。这是因为它仅在site模块已加载时才有效。相反,此功能应仅在解释器中使用。

    1. exit()是的别名quit(反之亦然)。它们一起存在只是为了使Python更加用户友好。

    此外,在打印时它还会给出一条消息:

    >>> print (exit)
    Use exit() or Ctrl-Z plus Return to exit
    >>>
    

    然而,像quit,exit被认为是不好的产品代码使用,并应保留在解释使用。这是因为它也依赖于site模块。

    1. sys.exit()SystemExit在后台引发异常。这意味着,它是相同的quit,并exit在这方面。

    但是,与这两者不同的是,sys.exit在生产代码中很好地使用它。这是因为sys模块将始终存在。

    1. os._exit()退出程序而不调用清理处理程序,刷新stdio缓冲区等。因此,这不是退出的标准方法,仅应在特殊情况下使用。其中最常见的是在所创建的子进程中os.fork

    请注意,在给出的四种方法中,只有一种是唯一的。

    总结起来,所有四种方法都退出程序。但是,前两个被认为不好用在生产代码中,最后两个是非标准的,肮脏的方式,仅在特殊情况下使用。因此,如果要正常退出程序,请使用第三个方法:sys.exit

    或者,我认为更好的是,你可以直接sys.exit执行幕后操作并运行:

    raise SystemExit
    

    这样,你无需先导入sys

    但是,此选择只是样式上的一个,完全由你决定。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看