_
has 4 main conventional uses in Python:
- To hold the result of the last executed expression(/statement) in an interactive interpreter session. This precedent was set by the standard CPython interpreter, and other interpreters have followed suit
- For translation lookup in i18n (see the gettext documentation for example), as in code like:
raise forms.ValidationError(_("Please enter a correct username"))
- As a general purpose “throwaway” variable name to indicate that part of a function result is being deliberately ignored (Conceptually, it is being discarded.), as in code like:
label, has_label, _ = text.partition(':')
. - As part of a function definition (using either
def
orlambda
), where the signature is fixed (e.g. by a callback or parent class API), but this particular function implementation doesn’t need all of the parameters, as in code like:callback = lambda _: True