python - 为什么在 Python 解释器中键入 _ 会返回 True?

标签 python interpreter

<分区>

我的解释器行为很奇怪:

>>> _
True
>>> type(True)
<class 'bool'>
>>> type(_)
<class 'bool'>

我尝试这样做是因为 _ 在 Bpython 中作为建议出现,但它似乎也适用于普通解释器。我正在使用

Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 16 2013, 23:39:35) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin

谁能解释为什么 _ 是 True 的替代品?它是遗留的,类似于“;”可用于结束命令,但没有必要/不鼓励?

编辑:这似乎是随机的。这不会发生在新终端中,但一旦我开始做某事,_ 就开始成为现实。这到底是怎么回事?

最佳答案

_ 将是最后一个评估命令的结果 - 在解释器启动时没有任何结果,所以你会得到一个 NameError ......之后,你会得到以前的结果...尝试打开一个新的解释器并执行 2 + 2...你会看到 4 返回,然后键入 _ ...例如:

>>> _

Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    _
NameError: name '_' is not defined
>>> 2 + 2
4
>>> _
4

关于python - 为什么在 Python 解释器中键入 _ 会返回 True?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22269897/

相关文章:

python - 编写 python 代码最有效的方法

c++ - 在哪里可以找到构建高级语言控制流的(解释器的)代码示例? (如果/否则,同时)

optimization - 理论:JIT编译器可以先解析整个程序,然后再执行吗?

lambda - 艾伦·凯的评估/应用爱因斯坦时刻

python - Flask-babel : translation per user

Python MySQLdb 执行缓慢

python - 执行 OCR 的技巧 - 没有得到想要的结果

java - 为什么有 JIT 的解释器比没有 JIT 的解释器产生更快的代码?

optimization - 高效解释器中使用了哪些操作码调度策略?

Python Tkinter GUI 自动化