답변:
그들에 대한 정보를 제공하겠습니다.
quit()
단순히 SystemExit
예외 를 제기합니다 .
또한 인쇄하면 다음과 같은 메시지가 나타납니다.
>>> print (quit)
Use quit() or Ctrl-Z plus Return to exit
>>>
이 기능은 Python을 모르는 사람들을 돕기 위해 포함되었습니다. 결국 초보자가 파이썬을 종료하려고 시도 할 가능성이 가장 높은 것 중 하나는 입력하는 것입니다 quit
.
그럼에도 불구하고, quit
해야 하지 생산 코드에서 사용할 수. site
모듈이로드 된 경우에만 작동하기 때문 입니다. 대신이 함수는 인터프리터에서만 사용해야합니다.
exit()
에 대한 별명입니다 quit
(또는 그 반대). 파이썬을보다 사용자 친화적으로 만들기 위해 함께 존재합니다.
또한 인쇄시 메시지도 표시됩니다.
>>> print (exit)
Use exit() or Ctrl-Z plus Return to exit
>>>
그러나 같은 quit
, exit
생산 코드에 사용하는 것이 나쁜 것으로 간주되며 인터프리터에서 사용하기 위해 예약해야한다. site
모듈에 의존하기 때문 입니다.
sys.exit()
또한 SystemExit
예외를 발생시킵니다. 이는 해당 측면에서 quit
와 동일하고 동일하다는 것을 의미합니다 exit
.
그러나이 두 가지와 달리 sys.exit
프로덕션 코드에서 사용하는 것이 좋습니다. 때문이다 sys
모듈은 항상있을 것입니다.
os._exit()
정리 핸들러, 플러시 stdio 버퍼 등을 호출하지 않고 프로그램 을 종료합니다 . 따라서 종료하는 표준 방법이 아니며 특수한 경우에만 사용해야합니다. 이들 중 가장 일반적인 것은에 의해 생성 된 자식 프로세스에 os.fork
있습니다.
주어진 네 가지 방법 중이 방법 만 수행하는 방식이 고유합니다.
요약하면, 네 가지 방법 모두 프로그램을 종료합니다. 그러나 처음 두 개는 프로덕션 코드에서 사용하기에 좋지 않은 것으로 간주되고 마지막 두 개는 특수 시나리오에서만 사용되는 비표준적이고 더러운 방법입니다. 따라서 프로그램을 정상적으로 종료하려면 세 번째 방법을 사용하십시오 sys.exit
.
또는 내 의견으로는 더 나은 sys.exit
것은, 배후에서 직접 수행 하고 실행하는 것입니다.
raise SystemExit
이렇게하면 sys
먼저 가져올 필요가 없습니다 .
그러나이 선택은 단순히 스타일 중 하나이며 순전히 당신에게 달려 있습니다.
quit
그리고 exit
동안 쉘을 종료 sys.exit
하지 않습니다.
sys.exit()
신뢰할 수있는 방법은 아닙니다. 스레드 내부에서 호출되면 기본 스레드에 있지 않으면 해당 스레드 만 종료됩니다. 호출이 주 스레드에 없었기 때문에 프로그램이 계속되는 경우가 많으며 특히 일부 인터프리터가 스레드 호출을 보이지 않게 할 수 있습니다.
end
명령 을 추가하기 위해 투표합니다 raise SystemExit
. BASIC 에서처럼 왜 그렇게 간단한 것을 할 수 없는지 보지 마십시오.
print
명령문에서 함수로 변경된 이유와 유사 합니다. 구문을 추가하는 것은 쉽지만 그렇게하는 데에는 복잡한 비용이 있습니다.
sys.exit()
합니까?
함수 * quit()
, exit()
및 sys.exit()
함수는 같은 방식으로 SystemExit
예외를 발생시킵니다. 즉 제외하고 그래서 진짜 차이가없고, sys.exit()
항상 사용할 수 있지만 exit()
및 quit()
경우에만 사용할 수있는 site
모듈을 가져옵니다.
이 os._exit()
함수는 특별하며 정리 함수를 호출하지 않고 즉시 종료합니다 (예 : 버퍼를 비우지 않음). 이것은 고도로 전문화 된 유스 케이스를 위해 설계되었습니다. 기본적으로 os.fork()
통화 후 아이에게만 해당됩니다 .
REPL에서 exit()
또는 사용하십시오 quit()
.
sys.exit()
스크립트에서 사용 하거나 raise SystemExit()
원하는 경우에 사용하십시오 .
를 os._exit()
호출 한 후 종료 할 하위 프로세스에 사용하십시오 os.fork()
.
이들 모두는 예를 들면, 인수없이 호출 할 수 있습니다, 또는 당신은 종료 상태를 지정할 수 있습니다 exit(1)
또는 raise SystemExit(1)
휴대용 프로그램, 0 ~ 255 범위에서 종료 상태 코드에있는 경우를 제한됩니다 1. 주 상태 종료에 raise SystemExit(256)
많은 시스템이 의지에 잘리고 프로세스는 실제로 상태 0으로 종료됩니다.
* 사실, quit()
및 exit()
호출 인스턴스 개체입니다,하지만 난 그들 함수를 호출 괜찮아 생각합니다.
os._exit()
:
exit(0)
:
exit(1)
:
sys.exit()
:
quit()
:
기본적으로 그들은 모두 똑같은 일을하지만, 당신이하는 일에 달려 있습니다.
나는 당신이 아무것도 버리지 않았다고 생각하며 quit()
또는에 익숙해지는 것이 좋습니다 exit()
.
다음을 사용 sys.exit()
하고 os._exit()
당신이 큰 파일을 사용 또는 터미널 제어하기 위해 파이썬을 사용하는 주로합니다.
그렇지 않으면 주로 exit()
또는을 사용하십시오 quit()
.
sys.exit
정식 종료 방법입니다.
내부적 sys.exit
으로 상승 SystemExit
합니다. 그러나 전화 sys.exit
는 SystemExit
직접 올리는 것보다 관용적 입니다.
os.exit
정리 핸들러를 호출하지 않고 직접 종료되는 저수준 시스템 호출입니다.
quit
및 exit
파이썬 프롬프트에서 쉬운 방법을 제공하는 유일한 존재한다. 이것은 새로운 사용자 나 실수로 Python 프롬프트를 입력 한 사용자에게 적합하며 올바른 구문을 알고 싶지 않습니다. 그들은 exit
또는을 입력하려고 할 것 quit
입니다. 이것은 인터프리터를 종료하지는 않지만 최소한 탈출구를 알려주는 메시지를 발행합니다.
>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
>>> exit()
$
이것은 본질적으로 인터프리터 __repr__
가 프롬프트에 입력 한 표현을 인터프리터가 인쇄한다는 사실을 활용하는 해킹입니다 .
os.abort()