development

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

big-blog 2020. 7. 3. 17:57
반응형

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


파이썬 명령 줄을 끝내려면 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그 자체로는 객체의 이름 이외의 다른 것이 될 수 없습니다. 단순히 객체를 참조하는 것은 실제로 아무것도 할 수 없습니다 (읽기 평가 인쇄 루프가 정상적으로 수행하는 것 제외, 즉 객체의 문자열 표현 표시).


고칠 수 있습니다.

PYTHONSTARTUP다음을 사용하여 파이썬 파일에 연결

# Make exit work as expected
type(exit).__repr__ = type(exit).__call__

이것은 어떻게 작동합니까?

python 명령 행은 read-evaluate-print-loop입니다. 즉, 텍스트를 입력하면 해당 텍스트를 읽고 평가하여 결과를 인쇄합니다.

입력 exit()하면 호출 가능한 유형의 객체로 평가되고 site.Quitter해당 __call__기능을 호출 하여 시스템을 종료합니다. 입력 exit하면 동일한 호출 가능한 객체로 평가되고, 호출하지 않고 객체가 인쇄되어 객체를 호출 __repr__합니다.

우리는 연결하여 활용할 수 __repr____call__따라서 경우에도 우리는 입력 시스템을 종료의 예상 행동을 얻을 exit괄호없이합니다.


파이썬 터미널 에서 나가려면 간단히 다음을 수행하십시오.

exit()

Please pay attention it's a function which called as most user mix it with exit without calling, but new Pyhton terminal show a message...

or as a shortcut, press:

Ctrl + D

on your keyboard...

ctrl + D


If you stuck in python command line and none of above solutions worked for you, try exit(2)


"exit" is a valid variable name that can be used in your Python program. You wouldn't want to exit the interpreter when you're just trying to see the value of that variable.

참고URL : https://stackoverflow.com/questions/9730409/exiting-from-python-command-line

반응형