一尘不染

Python中单个下划线“ _”变量的用途是什么?

python

此代码中的_after 是什么意思for

if tbh.bag:
   n = 0
   for _ in tbh.bag.atom_set():
      n += 1

阅读 734

收藏
2020-02-06

共1个答案

一尘不染

_在Python中有4种主要的常规用法:

  1. 在交互式解释器会话中保存上次执行的表达式的结果。此先例是由标准CPython解释器设定的,其他解释器也纷纷效仿
  2. 在i18n中进行翻译查找( 例如,参见 gettext文档),如代码所示: raise forms.ValidationError(_("Please enter a correct username"))
  3. 作为通用“一次性”的变量名指示函数结果的一部分被故意忽略(在概念上,它被丢弃。),如类似的代码: label, has_label, _ = text.partition(':')
  4. 作为函数定义的一部分(使用def或lambda),其中的签名是固定的(例如,通过回调或父类API),但是这种特定的函数实现不需要所有参数,如代码所示:callback = lambda _: True
    (很长一段时间这个答案只列出的前三个用例,但第四的情况下想出往往不够,如上所述这里,将值得明确列出)

后者的“抛弃型变量或参数名称”用例可能与翻译查找用例冲突,因此有必要避免_在也将其用于i18n转换的任何代码块中将其用作抛弃型变量(许多人更喜欢使用双下划线,因为正是因为这个原因,它们的一次性变量是) 。

2020-02-06