栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

_

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

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

标准 Python解释去一些长度上虽然用户定义的值不踩; 如果您自己分配其他 东西

_
那么解释器将不会覆盖它(从技术上讲,
_
变量是
__builtin__
attribute,您自己的分配是“常规”全局变量)。但是,您没有使用标准的Python解释器。您正在使用IPython,并且该解释器不是那么小心。

IPython明确记录了此行为:

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

  • [_]
    (一个下划线):存储先前的输出,例如Python的默认解释器。

[…]

在标准的Python
REPL环境中,如果您分配了一些东西,

_
您仍然可以通过
__builtins__._
或删除
_
再次遮蔽它的全局变量来访问最后一个表达式结果
del_

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

而且,按照惯例,将其

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624709.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号