为何Python Shell会将最后表达式存入_变量,而Python文件却不会?
为啥Python Shell里的
_变量在脚本文件里用不了? 问题重现
在Python交互式Shell里执行以下代码完全正常:
>>> 10+2 12 >>> print(_) 12
但把这段逻辑写到.py脚本文件中运行时,会直接抛出错误:NameError: name '_' is not defined。
核心原因
_是Python交互式解释器专门添加的便利变量,作用就是自动缓存上一个表达式的计算结果,方便你在交互式试代码时快速复用结果,不用重复写计算逻辑。- 脚本文件属于批量执行的代码场景,Python不会给这类场景启用这个“小便利”——脚本运行不需要临时缓存单步结果的机制,因此根本不会定义
_这个变量。
替代方案
如果需要在脚本里复用表达式结果,手动保存即可:
calc_result = 10 + 2 print(calc_result)
内容的提问来源于stack exchange,提问作者Alireza Bahrami
相关产品推荐
相关产品推荐

