Python中单个下划线“ _”变量的用途是什么?
发布于 2021-02-02 23:24:20
此代码中的_after
是什么意思for
?
if tbh.bag:
n = 0
for _ in tbh.bag.atom_set():
n += 1
关注者
0
被浏览
221
1 个回答
-
_
在Python中有4种主要的常规用法:- 在交互式解释器会话中保存上次执行的表达式的结果。此先例是由标准CPython解释器设定的,其他解释器也纷纷效仿
- 在i18n中进行翻译查找( 例如,参见 gettext文档),如代码所示:
raise forms.ValidationError(_("Please enter a correct username"))
- 作为通用“一次性”的变量名指示函数结果的一部分被故意忽略(在概念上,它被丢弃。),如类似的代码:
label, has_label, _ = text.partition(':')
。 - 作为函数定义的一部分(使用
def或lambda
),其中的签名是固定的(例如,通过回调或父类API),但是这种特定的函数实现不需要所有参数,如代码所示:callback = lambda _: True
(很长一段时间这个答案只列出的前三个用例,但第四的情况下想出往往不够,如上所述这里,将值得明确列出)
后者的“抛弃型变量或参数名称”用例可能与翻译查找用例冲突,因此有必要避免_在也将其用于
i18n
转换的任何代码块中将其用作抛弃型变量(许多人更喜欢使用双下划线,因为正是因为这个原因,它们的一次性变量是) 。