Python中exit(0)和exit(1)之间的区别

see*_*ker 147 python exit-code

Python exit(0)exit(1)Python 之间的区别是什么?

我试着环顾四周,但没有在这些方面找到具体的问题.如果它已经被回答,那么链接就足够了.

man*_*lds 217

0和1是退出代码.

exit(0) 意味着干净的出口没有任何错误/问题

exit(1) 意味着存在一些问题/错误/问题,这就是程序退出的原因.

这不是Python特有的,而且很常见.非零退出代码被视为异常退出,有时,错误代码表示问题所在.零错误代码表示成功退出.

这对于其他程序,shell,调用者等非常有用,可以了解您的程序发生了什么并相应地进行.

  • @Faizan:退出代码是Unix上的8位值.如果调用`exit(-1)`,则该值等于`exit(255)` - 最低有效8位被中继到调用程序(shell或其他). (14认同)
  • 那么退出(-1)呢? (8认同)
  • 请注意,根据[文档](https://docs.python.org/3/library/constants.html#constants-added-by-the-site-module),“exit()”由“添加” site` 模块,不应被程序使用。相反,如果您不想导入另一个模块,请使用“sys.exit()”,甚至“raise SystemExit”。 (5认同)
  • 由于 Unix/Linux 的退出代码,我认为在 Python 条件中 0 是 True,1 是 False 值。 (2认同)

Dav*_*son 17

这确定了程序运行完成后的退出状态(通常,0表示成功,1表示错误).

它并不是Python独有的,确切的效果取决于您的操作系统以及程序的调用方式(尽管99%的情况下,如果您只是运行Python脚本,这并不重要).


Jon*_*ler 9

所有C程序的标准约定,包括Python,用于exit(0)指示成功,exit(1)或任何其他非零值(在1..255范围内)以指示失败.超出范围0..255的任何值都以256为模(处理状态存储在8位值中).有时,这将被视为已签名(因此您可能会看到-128,-127等),但通常将其视为无符号.

调用Python的代码可以使用此状态.此约定适用于跨平台,但非零退出状态的含义可能因平台而异.


小智 6

exit(0):这会导致程序退出并成功终止。

exit(1):这会导致程序以特定于系统的含义退出。

在许多系统上,exit(1)表示某种故障,但不能保证。

我记得,C 标准只识别三个标准退出值:

  • EXIT_SUCCESS -- 成功终止
  • EXIT_FAILURE -- 不成功的终止
  • 0 - 与...一样 EXIT_SUCCESS


Jos*_*uez 5

传递给exit()函数的数字只是程序的返回代码,该代码将提供给操作系统.从程序的角度来看,没有区别:执行将在两种情况下结束,并且提供给函数的值将被赋予操作系统.但是一些工具和脚本会考虑程序的退出代码.大多数工具成功时返回0,非零表示错误.

因此,如果您的程序将从脚本,自动化工具或其他考虑到返回代码的软件(例如IDE)运行,那么您必须小心返回的内容.

如有疑问,只需返回0表示一切正常.