当前位置: 首页 > 面试题库 >

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

龙德润
2023-03-14
问题内容

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

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


问题答案:

让我给他们一些信息:

  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

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



 类似资料:
  • python似乎支持许多不同的命令来停止脚本执行。 我找到的选择有:、、、 我错过了什么吗?它们之间有什么区别?你什么时候用?

  • 问题内容: 嗨,我只是想创建一个简单的golang应用程序,它使用以下命令在identi.ca上发布新的凹痕 到目前为止,这是我的代码,恕我直言,这应该起作用,但实际上它不起作用,有人知道如何解决此问题吗? 编辑: 不:我没有收到任何错误消息:/ 问题答案: 不会将整个命令行作为单个参数。您需要将其称为: 您怎么知道是否遇到错误?您无需检查的返回值。 您实际上应该将命令创建与运行分开。这样,您可以

  • 这个程序要求我写一个程序,要求用户键入两个数字x,y,和一个算术符号s。根据输入的符号,程序将两个数字相加或相减,并使用带有三个参数的返回类型方法返回结果。 示例:如果输入是2、3和'+'。然后,程序将打印:5 这就是我所做的; 但我无法在不知道为什么的if命令中获取(char1)

  • 问题内容: 我正在用Python编写一个程序,该程序必须通过SSH与物理目标进行通信,并自动将一些命令发送到该目标(用于测试)。 我首先使用Paramiko进行此操作,然后一切都非常完美,直到我必须发送几个命令,并且例如当第二个命令必须在第一个命令的上下文中执行时(例如,第一个命令执行,第二个命令是)。我不能这样做,因为每个人都开始一个新的会话。 我尝试使用带有的通道,但是与此相关的另一个问题是:

  • 问题内容: 我是shell脚本方面的菜鸟。如果命令失败,我想打印一条消息并退出脚本。我试过了: 但它不起作用。它会继续执行脚本中此行之后的指令。我正在使用Ubuntu和bash。 问题答案: 尝试: 四个变化: 更改为 使用代替 在和之后介绍 之前和之后的空格 既然你要打印的消息,只有当命令失败(非零值退出)退出你需要一个不是。 将在成功时运行(退出值)。在哪里 将在失败(退出值非零)时运行。 使

  • 本文向大家介绍使用什么命令查看用过的命令列表?相关面试题,主要包含被问及使用什么命令查看用过的命令列表?时的应答技巧和注意事项,需要的朋友参考一下 答案: history