我在一些情况下看到过这个,例如,
顺序解包:
_, x = L.pop() # e.g., L is a list of tuples
初始化一个容器:
X = _
很明显,这不是正式 python 语法的一个元素,而是我所知道的用途似乎是随意的。
所以我很好奇使用它的可能原因是什么以及通常有哪些优势(如果有的话)?
注意:我的问题与“_”在脚本、模块等中的使用有关,但不是/strong> 它在交互式提示符下的使用。在 IDLE 中,python 封装的交互式解释器,以及在 ipython 中,“_”用作最近返回结果的占位符).
我见过它以两种方式使用。两者都作为一次性变量,但更常见的是作为国际化的文本包装器。
一次性变量
name, _ = 'bida.bombu.foo'.split('.', 1)
虽然我不推荐这个。而是称之为“忽略”。
name, ignored = 'bida.bombu.foo'.split('.', 1)
更清晰。
国际化封装
from zope.i18nmessageid import MessageFactory
_ = MessageFactory('my.domain')
label = _("The label text")
label
在这里将是一个“消息”,一个具有消息 ID 和域的对象,当呈现给用户界面(如网页)时,它将被转换为当前通过消息目录使用用户语言,以便标签最终以用户的本地语言显示。
_
在这里使用是因为它简短且不引人注目。生成的代码 _("The label text")
看起来与字符串没有什么不同,而 MyDomainMessage("The label text")
确实看起来非常不同而且还更长。