Spyder控制台:_变量赋值后失效及输出抑制与默认行为恢复咨询
关于Python交互式环境中
_变量的两个问题解决方案 问题1:选择性抑制控制台输出的替代方法
如果是在IPython/Jupyter这类支持_自动存储结果的交互式环境中,最简洁的抑制输出方式是在表达式或函数调用末尾添加分号;,无需创建临时变量,也不用后续清理:
2+3; # 控制台不会输出运算结果 some_function(); # 抑制函数返回值的打印
如果是在标准Python REPL中,默认仅当表达式未赋值给变量时才会打印结果。若不想保留变量,除了赋值给临时变量后删除,还可以用exec执行表达式来避免打印:
exec('2+3') # 无控制台输出
问题2:恢复_自动存储最后结果的默认行为
_自动存储最后表达式结果是IPython/Jupyter的专属特性。当你显式给_赋值后,它会变成普通用户变量,IPython会停止自动更新它。要恢复默认行为,只需从用户命名空间中移除_,IPython就会重新接管这个变量:
方法1:删除变量后触发自动存储
_ = 3+4 # 显式赋值,_变为普通变量 del _ # 从命名空间移除_ 4+5 # 执行任意表达式,IPython会自动将结果存入_ _ # 控制台输出:9
方法2:用IPython API直接重置
_ = 3+4 get_ipython().user_ns.pop('_') # 直接移除用户命名空间中的_ 4+5 _ # 控制台输出:9
注意:标准Python REPL本身没有_自动存储结果的功能,因此不存在这个恢复需求。
内容的提问来源于stack exchange,提问作者user2153235
相关产品推荐
相关产品推荐

