python - 分配给 "_ "的原因

标签 python programming-languages syntax idioms

<分区>

我在一些情况下看到过这个,例如,

顺序解包:

_, 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") 确实看起来非常不同而且还更长。

关于python - 分配给 "_ "的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4859909/

相关文章:

python - Sonarqube python 插件单元测试深入分析

python - Python 中的词法分析器

python连接mySql错误-ConnectionRefusedError : [WinError 10061]

python代码组织

Java语法解释

Python 从命令行读取文件并用非常大的文件剥离 "\n\r"

javascript - 立即函数调用语法

programming-languages - 我如何比较工作项目的编程语言?

java - java包名为什么要小写?

garbage-collection - 是否有基于两空间/切尼算法的现代垃圾收集?