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



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



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


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

420   10  

10 ответов:

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

<function exit at 0x00B97FB0>

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

Предположим, вы смотрите на какой-то код в отладчике, для экземпляр, и один из объектов ссылается на

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

exit ()

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

это сообщение на 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'

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

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

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

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

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

ссылке PYTHONSTARTUP в файл python со следующим

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

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

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

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

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

на выезд из Python terminal, просто:

exit()

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

или в качестве ярлыка нажмите:

Ctrl + D

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

ctrl + D

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

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

Comments

    Ничего не найдено.