python中exit什么意思_Python中的exit()和sys.exit()之间的区别

  • Post author:
  • Post category:python


exit是交互式外壳的帮助器 –

sys.exit旨在用于程序。

The site module (which is imported automatically during startup, except if the -S command-line option is given) adds several constants to the built-in namespace (e.g. exit). They are useful for the interactive interpreter shell and should not be used in programs.

技术上,他们做的大多是相同的:提高SystemExit. sys.exit这样做在sysmodule.c:

static PyObject *

sys_exit(PyObject *self, PyObject *args)

{

PyObject *exit_code = 0;

if (!PyArg_UnpackTuple(args, “exit”, 0, 1, &exit_code))

return NULL;

/* Raise SystemExit so callers may catch it or clean up. */

PyErr_SetObject(PyExc_SystemExit, exit_code);

return NULL;

}

退出在site.py中定义:

class Quitter(object):

def __init__(self, name):

self.name = name

def __repr__(self):

return ‘Use %s() or %s to exit’ % (self.name, eof)

def __call__(self, code=None):

# Shells like IDLE catch the SystemExit, but listen when their

# stdin wrapper is closed.

try:

sys.stdin.close()

except:

pass

raise SystemExit(code)

__builtin__.quit = Quitter(‘quit’)

__builtin__.exit = Quitter(‘exit’)

注意,有一个第三个退出选项,即os._exit,退出时不调用清理处理程序,刷新stdio缓冲区等(并且通常只能在fork()之后的子进程中使用)。



版权声明:本文为weixin_42512719原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。