退出python命令行

时间:2012-03-16 00:57:57

标签: python

要从Python命令行退出,我必须输入exit()。如果我输入exit,它会显示

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

通常在您键入exit时,您可能希望退出该程序。为什么解释器在知道我试图退出命令行时给出了上述错误?为什么不退出呢?我知道这无关紧要,这是一个愚蠢的问题,但我很好奇。

11 个答案:

答案 0 :(得分:43)

这对我有用,是从python提示出来的最好方法。

  

出口()

答案 1 :(得分:36)

在命令行中键入exit时,它会找到具有该名称的变量,并在其上调用__repr__(或__str__)。通常,您会得到如下结果:

<function exit at 0x00B97FB0>

但他们决定重新定义exit对象的该函数,以显示有用的消息。这不是一个愚蠢的行为,是一个主观的问题,但一个可能的原因,它不会出现&#34;只是退出&#34;是:

假设您正在查看调试器中的某些代码,并且其中一个对象引用了exit函数。当调试器试图在该对象上调用__repr__以向您显示该功能时,程序突然停止!这实际上是意料之外的,并且反击的措施可能会使事情进一步复杂化(例如,即使您将该行为限制在命令行,如果您尝试打印某些具有exit属性的对象,该怎么办? )

答案 2 :(得分:18)

我建议您使用 Ctrl-D 退出Python解释器。这是用于文件结束或传输结束的旧ASCII码。

答案 3 :(得分:17)

此消息是__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'

答案 4 :(得分:15)

在我的python解释器中exit实际上是一个字符串而不是函数 - 'Use Ctrl-D (i.e. EOF) to exit.'。您可以输入type(exit)

来查看口译员

在活动python中发生的事情是exit是一个函数。如果不调用该函数,它将打印出该对象的字符串表示形式。这是返回的任何对象的默认行为。只是设计师认为人们可能会尝试键入exit来退出解释器,因此他们使退出函数的字符串表示成为有用的信息。您可以通过键入str(exit)甚至print exit来检查此行为。

答案 5 :(得分:7)

因为解释器不是你提供命令的shell,所以 - 很好 - 一个解释器。你给它的东西是Python代码。

Python的语法是exit本身不可能是对象名称以外的任何东西。简单地引用一个对象实际上不能做任何事情(除了read-eval-print循环通常做的事情;即显示对象的字符串表示)。

答案 6 :(得分:6)

在Windows上与Anaconda 4.5+和Python 3.6+一起使用

Ctrl+Z

exit()

在某些情况下,您可能必须使用

Ctrl+Break

如果您的计算机没有Break键,则see here

答案 7 :(得分:3)

你可以解决这个问题。

使用以下

PYTHONSTARTUP链接到python文件
# Make exit work as expected
type(exit).__repr__ = type(exit).__call__

这是如何运作的?

python命令行是一个读取 - 评估 - 打印循环,当您键入文本时,它将读取该文本,对其进行评估,并最终打印结果。

当您键入exit()时,它会求值为site.Quitter类型的可调用对象,并调用退出系统的__call__函数。当您键入exit时,它将计算到同一个可调用对象,而不调用它,将打印该对象,而该对象又调用该对象上的__repr__

我们可以通过将__repr__链接到__call__来利用这一点,从而即使我们在没有括号的情况下键入exit,也可以获得退出可疑行为的预期行为。

答案 8 :(得分:0)

如果您停留在python命令行中,但上述解决方案均不适合您, 尝试exit(2)

答案 9 :(得分:0)

要从 Python终端退出,只需执行以下操作:

exit()

请注意,这是一个函数,大多数用户在不调用它的情况下将其与退出混合使用,但是新的Pyhton终端会显示一条消息...

或作为快捷方式,按:

Ctrl + D

在键盘上...

ctrl + D

答案 10 :(得分:-1)

“ exit”是可以在您的Python程序中使用的有效变量名。当您尝试查看该变量的值时,您不想退出解释器。