_
Pythonには4つの主な従来の用途があります。
- インタラクティブインタープリターセッションで最後に実行された式(/ステートメント)の結果を保持します。この先例は標準のCPythonインタープリターによって設定され、他のインタープリターも同様に続いています
- 次の
ようなコードのように、i18nの翻訳ルックアップ(たとえば、gettextのドキュメントを参照
)。
raise forms.ValidationError(_("Please enter a correct username"))
- 次のようなコードのように、関数の結果の一部が意図的に無視されている(概念的には破棄されている)ことを示すための汎用の「使い捨て」変数名
label, has_label, _ = text.partition(':')
。
- 関数定義の一部として(
def
またはを使用lambda
)、シグネチャは(たとえば、コールバックまたは親クラスAPIによって)修正されますが、この特定の関数の実装は、次のようなコードのように、すべてのパラメーターを必要としません。callback = lambda _: True
(長い間、この回答では最初の3つのユースケースしかリストされていませんでしたが、4番目のケースは、ここで述べたように、明示的にリストする価値があるほど頻繁に出てきました)
後者の「使い捨て変数またはパラメーター名」の使用例は、トランスレーションルックアップの使用例と競合する可能性があるため_
、i18n変換にも使用するコードブロックで使い捨て変数として使用することを避ける必要があります(多くの人はダブルアンダースコアを好む) 、__
、)まさにこの理由のために彼らの使い捨ての変数として。