[python] 파이썬 커맨드 라인에서 나가기

파이썬 명령 줄을 끝내려면 exit ()를 입력해야합니다. exit를 입력하면

Use exit() or Ctrl-Z plus Return to exit

일반적으로을 입력 exit하면 프로그램을 종료하려고합니다. 명령 줄을 종료하려고 할 때 인터프리터에서 왜 위의 오류가 발생합니까? 왜 그냥 종료되지 않습니까? 나는 그것이 중요하지 않고 어리석은 질문이라는 것을 알고 있지만 궁금합니다.



답변

내 파이썬에서 인터프리터 exit는 실제로 문자열이며 함수가 아닙니다 'Use Ctrl-D (i.e. EOF) to exit.'. 다음을 입력하여 통역사를 확인할 수 있습니다type(exit)

활성 파이썬에서 일어나고있는 일은 exit가 함수라는 것입니다. 함수를 호출하지 않으면 객체의 문자열 표현이 인쇄됩니다. 이것은 반환 된 객체의 기본 동작입니다. 디자이너가 사람들이 인터프리터를 종료하기 위해 exit를 입력하려고 시도한다고 생각했기 때문에 exit 함수의 문자열 표현을 유용한 메시지로 만들었습니다. 당신은 입력하여이 동작을 확인할 수 있습니다 str(exit)또는 print exit.


답변

이것은 파이썬 프롬프트에서 나오는 가장 좋은 방법입니다.

출구()


답변

exit명령 행에 입력하면 해당 이름의 변수를 찾은 다음 해당 변수를 호출 __repr__(또는 __str__)합니다. 일반적으로 다음과 같은 결과가 나타납니다.

<function exit at 0x00B97FB0>

그러나 그들은 exit객체가 유용한 메시지를 대신 표시 하도록 해당 기능을 재정의하기로 결정했습니다 . 그것이 멍청한 행동인지 아닌지에 대한 주관적인 질문이지만 그것이 “그냥 나가지 않는”한 가지 가능한 이유는 다음과 같습니다.

예를 들어 디버거에서 일부 코드를보고 있고 객체 중 하나가 exit함수를 참조한다고 가정합니다 . 디버거가 __repr__해당 개체 를 호출 하여 해당 기능을 표시 하려고 하면 프로그램이 갑자기 중지됩니다! 실제로 예상치 못한 일이 발생하고 이에 대응하기위한 조치가 더 복잡해질 수 있습니다 (예 : 명령 행으로 해당 동작을 제한하더라도 exit속성 이있는 객체를 인쇄하려고하면 어떻게됩니까?)


답변

이 메시지는이다 __str__의 속성exit

다음 예제를보십시오.

1

>>> print exit
Use exit() or Ctrl-D (i.e. EOF) to exit

2

>>> exit.__str__()
'Use exit() or Ctrl-D (i.e. EOF) to exit'

>>> getattr(exit, '__str__')()
'Use exit() or Ctrl-D (i.e. EOF) to exit'


답변

로 파이썬 인터프리터를 종료하는 것이 좋습니다 Ctrl-D. 파일 끝 또는 전송 끝의 이전 ASCII 코드입니다.


답변

Windows에서 Anaconda 4.5 이상 및 Python 3.6 이상 사용

Ctrl+Z

또는

exit()

경우에 따라 사용해야 할 수도 있습니다

Ctrl+Break

컴퓨터에 Break키 가 없으면 여기참조하십시오 .


답변

인터프리터는 명령을 제공하는 쉘이 아니기 때문에 인터프리터입니다. 당신이주는 것은 파이썬 코드입니다.

파이썬의 구문은 exit그 자체로는 객체의 이름 이외의 다른 것이 될 수 없습니다. 단순히 객체를 참조하는 것은 실제로 아무것도 할 수 없습니다 (읽기 평가 인쇄 루프가 정상적으로 수행하는 것, 즉 객체의 문자열 표현을 표시하는 것 제외).