在标准的Python REPL,_
代表最后一个返回值-在您叫点len(_)
,_
很值'abc'
。
例如:
>>> 10
10
>>> _
10
>>> _ + 5
15
>>> _ + 5
20
这是通过处理sys.displayhook
,以及_
可变进的builtins
事情就像命名空间int
和sum
,这就是为什么你不能在找到它globals()
。
请注意,Python 脚本中 没有此类功能。在脚本中,_
没有特殊含义,并且不会自动设置为上一条语句产生的值。
另外,_
如果您想像上面那样使用它,请当心在REPL中重新分配!
>>> _ = "underscore"
>>> 10
10
>>> _ + 5
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
_ + 5
TypeError: cannot concatenate 'str' and 'int' objects
这将创建一个全局变量,将其隐藏_
在内置变量中。要撤消分配(并_
从全局变量中删除),您必须:
>>> del _