您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python / IPython解释器中为单个下划线_赋值

在Python / IPython解释器中为单个下划线_赋值

Python解释器将最后一个表达式值分配给_

此行为仅限于REPL解释器,并且旨在帮助进行交互式编码会话:

>>> import math
>>> math.pow(3.0, 5)
243.0
>>> result = _
>>> result
243.0

标准 Python解释去一些长度上虽然用户定义的值不踩; 如果您自己分配其他 东西_那么解释器将不会覆盖它(从技术上讲,_变量是__builtin__attribute,您自己的分配是“常规”全局变量)。但是,您没有使用标准的Python解释器。您正在使用IPython,并且该解释器不是那么小心。

IPython明确记录了此行为

以下GLOBAL变量始终存在(因此请不要覆盖它们!):

[…]

在标准的Python REPL环境中,如果您分配了一些东西,_您仍然可以通过__builtins__._删除_再次遮蔽它的全局变量来访问最后一个表达式结果del _

_按照惯例,在Python解释器之外,它用作可翻译文本函数名称(请参阅gettext模块;外部工具会寻找该函数提取可翻译字符串)。

而且,按照惯例,将其_用作分配目标会告诉您的代码读者您将忽略该值;例如[random.random() for _ inrange(5)]foo, bar, _ =three_values将不使用生成5个随机浮点值的列表,或用信号表示元组分配的第三个值。当_已经用于gettext功能时,__可以用于相同的目的。

python 2022/1/1 18:33:08 有202人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶