このコードのfor
の後の_
の意味は何ですか?
if tbh.bag:
n = 0
for _ in tbh.bag.atom_set():
n += 1
_
には、Pythonで3つの主な慣習的な用途があります。
raise forms.ValidationError(_("Please enter a correct username"))
のようになります。label, has_label, _ = text.partition(':')
後者の2つの目的は矛盾する可能性があるので、国際化にも使用するコードブロックで_
を使い捨て変数として使用しないようにする必要があります(多くの人は二重下線__
を使い捨て変数として使います)。 。
これは単なる変数名であり、pythonでは使い捨ての変数に_
を使用するのが一般的です。ループ変数が実際には使用されていないことを示しているだけです。
アンダースコアの_
はPythonで " 私は気にしない "または " Throwaway "変数と見なされます
pythonインタプリタは最後の式の値を_
という特別な変数に格納します。
>>> 10
10
>>> _
10
>>> _ * 3
30
アンダースコア_
は、特定の値を無視するためにも使用されます。特定の値が不要な場合、または値が使用されていない場合は、値をアンダースコアに割り当てるだけです。
解凍時に値を無視する
x, _, y = (1, 2, 3)
>>> x
1
>>> y
3
インデックスを無視する
for _ in range(10):
do_something()
Pythonでアンダースコアを使用するケースは5つあります。
最後の式の値をインタプリタに格納するためのものです。
特定の値を無視します。 (いわゆる「気にしない」)
変数や機能の名前に特別な意味や機能を与えること。
「国際化(i18n)」または「ローカライズ(l10n)」機能として使用します。
数値リテラル値の数字を区切るため。
ここで は mingrammer による例を含むNiceの記事です。