alwbtc alwbtc -4 years ago 105
Python Question

What is the purpose of the single underscore "_" variable in Python?

What is the meaning of

_
after
for
in this code?

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

Answer Source

_ has 3 main conventional uses in Python:

  1. To hold the result of the last executed statement in an interactive interpreter session. This precedent was set by the standard CPython interpreter, and other interpreters have followed suit
  2. For translation lookup in i18n (see the gettext documentation for example), as in code like: raise forms.ValidationError(_("Please enter a correct username"))
  3. As a general purpose "throwaway" variable name to indicate that part of a function result is being deliberately ignored, as in code like: label, has_label, _ = text.partition(':')

The latter two purposes can conflict, so it is necessary to avoid using _ as a throwaway variable in any code block that also uses it for i18n translation (many folks prefer a double-underscore, __, as their throwaway variable for exactly this reason).

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download