Danis Asked:2021-11-20 15:17:13 +0000 UTC2021-11-20 15:17:13 +0000 UTC 2021-11-20 15:17:13 +0000 UTC 单个下划线“_”变量的用途是什么? 772 _这段代码中的after是什么for意思? if tbh.bag: n = 0 for _ in tbh.bag.atom_set(): n += 1 问题的翻译Python 中单下划线“_”变量的目的是什么?来自@alwbtc python 1 个回答 Voted Best Answer Danis 2021-11-20T15:17:13Z2021-11-20T15:17:13Z _在 Python 中有 5 个主要的标准用途: 将最后执行的表达式的结果存储在交互式解释器会话中。这个先例是由标准 CPython 解释器开创的,其他解释器也纷纷效仿。 作为通用变量名,表示有意忽略函数的部分结果(从概念上讲,它被丢弃。)。如类型代码: label, has_label, _ = text.partition(':') 作为函数定义的一部分(使用def或lambda),其中签名是固定的(例如,通过回调或 API 父类),但这个特定的函数实现不需要所有参数,如代码中的: callback = lambda _: True python linter 将下划线识别为故意未使用的变量(以上均使用)。例如 year, month, day = date() day如果稍后在代码中未使用该变量,将导致 lint 警告,如果day确实不需要,则可以像这样修复它: year, month, _ = date() 与 lambda 函数相同 lambda arg: 1.0 创建一个需要一个参数但不使用它的函数,这将被 lint 捕获,这可以通过编写来修复 lambda _: 1.0 未使用的变量通常会隐藏错误/错字(已创建day但在下一行使用dya) 在i18n中搜索翻译(例如参见gettext文档),如在类似代码中 raise forms.ValidationError(_("Please enter a correct username")) 使用下划线进行翻译来自几十年来被复制/粘贴的文档示例,例如: import gettext gettext.bindtextdomain('myapplication', '/path/to/my/language/directory') gettext.textdomain('myapplication') _ = gettext.gettext # ... print(_('Это переводимая строка.')) 来自@ncoghlan的答案翻译
_在 Python 中有 5 个主要的标准用途:将最后执行的表达式的结果存储在交互式解释器会话中。这个先例是由标准 CPython 解释器开创的,其他解释器也纷纷效仿。
作为通用变量名,表示有意忽略函数的部分结果(从概念上讲,它被丢弃。)。如类型代码:
作为函数定义的一部分(使用
def或lambda),其中签名是固定的(例如,通过回调或 API 父类),但这个特定的函数实现不需要所有参数,如代码中的:python linter 将下划线识别为故意未使用的变量(以上均使用)。例如
day如果稍后在代码中未使用该变量,将导致 lint 警告,如果day确实不需要,则可以像这样修复它:与 lambda 函数相同
创建一个需要一个参数但不使用它的函数,这将被 lint 捕获,这可以通过编写来修复
未使用的变量通常会隐藏错误/错字(已创建
day但在下一行使用dya)在i18n中搜索翻译(例如参见gettext文档),如在类似代码中
使用下划线进行翻译来自几十年来被复制/粘贴的文档示例,例如:
来自@ncoghlan的答案翻译