728x90
반응형
질문 : Python에서 exit ()와 sys.exit ()의 차이점
Python에는 비슷한 이름의 두 함수, exit()
및 sys.exit()
있습니다. 차이점은 무엇이며 언제 다른 것을 사용해야합니까?
답변
exit
는 대화 형 셸을위한 도우미입니다. sys.exit
는 프로그램에서 사용하기위한 것입니다.
site
-S
명령 줄 옵션이 제공되는 경우를 제외하고 시작하는 동안 자동으로 가져옴)은 내장 네임 스페이스에 여러 상수를 추가합니다 (예 : exit
) . 대화 형 인터프리터 쉘에 유용하며 프로그램에서 사용해서는 안됩니다 .
기술적으로는 거의 동일합니다 : 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;
}
exit
는 각각 site.py 및 _sitebuiltins.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()
이후에 자식 프로세스에서만 사용해야 함).
출처 : https://stackoverflow.com/questions/6501121/difference-between-exit-and-sys-exit-in-python
728x90
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python에서 HTTP GET을 수행하는 가장 빠른 방법 (0) | 2021.10.06 |
---|---|
파이썬 딕셔너리 컴프리헨션 (0) | 2021.10.06 |
Python 딕셔너리에서 키를 제거하는 방법 (0) | 2021.10.01 |
Python에서 유형을 확인하는 표준 방법 (0) | 2021.09.30 |
파이썬에서 배열에 항목을 선언하고 추가하는 방법 (0) | 2021.09.30 |