Python 2.7交互Shell是否有类似Bash中!!(bang bang)的功能?
在Python 2.7交互Shell中引用上一条命令结果的方法
嘿,这个问题我熟!在Python 2.7的交互Shell里,确实有类似Bash中!!的功能,但不是用!!符号,而是用内置的下划线变量_来获取上一条命令的执行结果。
举个和你例子对应的场景:
假设你刚执行完这条命令:
>>> complicated_dict['long_key_name'][0] # 输出某个结果,比如123
接下来要把这个结果传给my_func,直接这么写就行:
>>> my_func(_)
这里的_就代表上一条表达式的返回值,完全符合你想要的my_func(!!)的需求。
再给你个更直观的小例子感受下:
>>> len("hello world") 11 >>> _ * 2 22
第一条命令算出字符串长度是11,第二条用_引用这个结果,乘以2得到22,非常方便。
需要注意的是:
_只保存表达式求值的结果,如果上一条是赋值语句(比如>>> x = 5)或者没有返回值的命令(比如>>> print("hi")),_不会更新,还是保留之前的值。- 这个特性在Python 3的交互Shell里也同样适用,不止局限于2.7。
内容的提问来源于stack exchange,提问作者user3.1415927
相关产品推荐
相关产品推荐

