Подтвердить что ты не робот

Выход из командной строки python

Чтобы выйти из командной строки Python, мне нужно ввести exit(). Если я набираю exit, он говорит

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

Обычно, когда вы вводите exit, вы хотите выйти из программы. Почему интерпретатор дает мне вышеуказанную ошибку, когда он знает, что я пытаюсь выйти из командной строки? Почему он не выходит? Я знаю, это не имеет значения, и это глупый вопрос, но мне любопытно.

4b9b3361

Ответ 1

В моем интерпретаторе python exit на самом деле есть строка, а не функция - 'Use Ctrl-D (i.e. EOF) to exit.'. Вы можете проверить переводчика, введя type(exit)

В активном python происходит то, что выход является функцией. Если вы не вызываете функцию, она распечатает строковое представление объекта. Это поведение по умолчанию для любого возвращаемого объекта. Просто дизайнеры подумали, что люди могут попытаться ввести exit для выхода из интерпретатора, поэтому они сделали строковое представление функции выхода полезным сообщением. Вы можете проверить это поведение, набрав str(exit) или даже print exit.

Ответ 2

Это работает для меня, лучший способ выйти из приглашения python.

Выход()

Ответ 3

Когда вы вводите exit в командной строке, он находит переменную с этим именем и вызывает на ней __repr__ (или __str__). Обычно вы получите результат, например:

<function exit at 0x00B97FB0>

Но они решили переопределить эту функцию для объекта exit, чтобы вместо этого отобразить полезное сообщение. Является ли это глупым поведением или нет, является субъективным вопросом, но одна из возможных причин, почему он не "просто выходит":

Предположим, что вы смотрите на некоторый код в отладчике, например, и один из объектов ссылается на функцию exit. Когда отладчик пытается вызвать __repr__ на этом объекте, чтобы отобразить эту функцию для вас, программа внезапно останавливается! Это было бы действительно неожиданно, и меры по борьбе с этим могли бы усложнить ситуацию (например, даже если вы ограничиваете это поведение в командной строке, что, если вы попытаетесь напечатать некоторый объект, у которого exit как атрибут?)

Ответ 4

Я рекомендую вам выйти из интерпретатора Python с Ctrl-D. Это старый код ASCII для конца файла или конца передачи.

Ответ 5

Это сообщение является атрибутом __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'

3

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

Ответ 6

Поскольку интерпретатор не является оболочкой, где вы предоставляете команды, это - хорошо - интерпретатор. То, что вы ему даете, это код Python.

Синтаксис Python таков, что exit сам по себе не может быть чем-то другим, кроме имени для объекта. Просто ссылаться на объект не может фактически ничего сделать (кроме того, что обычно выполняется для цикла read-eval-print, т.е. Отображает строковое представление объекта).

Ответ 7

В Anaconda 4. 5+ и Python 3. 6+ в Windows используется

Ctrl+Z

или же

exit()

В некоторых случаях вам, возможно, придется использовать

Ctrl+Break

Если на вашем компьютере нет клавиши Break смотрите здесь.

Ответ 8

Вы можете это исправить.

Свяжите PYTHONSTARTUP с файлом Python следующим

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

Как это работает?

Командная строка python представляет собой цикл чтения-оценки-печати, то есть, когда вы набираете текст, он будет читать этот текст, оценивать его и в конечном итоге выводить результат.

Когда вы site.Quitter exit() он оценивается как вызываемый объект типа site.Quitter и вызывает функцию __call__ которая выходит из системы. Когда вы набираете exit он оценивает тот же вызываемый объект, без вызова этого объекта печатается объект, который, в свою очередь, вызывает __repr__ для объекта.

Мы можем воспользоваться этим, связав __repr__ с __call__ и, таким образом, получить ожидаемое поведение выхода из системы, даже когда мы вводим команду exit без скобок.

Ответ 9

Если вы застряли в командной строке Python и ни одно из вышеперечисленных решений не помогло вам, попробуйте exit(2)

Ответ 10

Чтобы выйти из терминала Python, просто выполните:

exit()

Пожалуйста, обратите внимание, что это функция, которая вызывается, поскольку большинство пользователей смешивают ее с выходом без вызова, но новый терминал Pyhton показывает сообщение...

или как ярлык, нажмите:

Ctrl + D

на твоей клавиатуре...

ctrl + D

Ответ 11

"exit" - это допустимое имя переменной, которое можно использовать в вашей программе на Python. Вы не захотите выходить из интерпретатора, когда вы просто пытаетесь увидеть значение этой переменной.