underscore method functions python variables naming-conventions underscores metasyntactic-variable

method - ¿Cuál es el propósito de la variable de subrayado "_" en Python?



python_( (4)

El guión bajo _ se considera como una variable " No me importa " o " Desechable " en Python

  • El intérprete de python almacena el último valor de expresión en la variable especial llamada _ .

    >>> 10 10 >>> _ 10 >>> _ * 3 30

  • El guión bajo _ también se usa para ignorar los valores específicos. Si no necesita los valores específicos o los valores no se utilizan, simplemente asigne los valores para subrayar.

    Ignorar un valor al desempacar

    x, _, y = (1, 2, 3) >>> x 1 >>> y 3

    Ignorar el índice

    for _ in range(10): do_something()

¿Cuál es el significado de _ después for en este código?

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


Es solo un nombre de variable, y es convencional en python usar _ para variables desechables. Solo indica que la variable de bucle no se usa realmente.


Hay 5 casos para usar el guión bajo en Python.

  1. Para almacenar el valor de la última expresión en el intérprete.

  2. Por ignorar los valores específicos. (llamado "No me importa")

  3. Para dar significados y funciones especiales a nombre de vartiables o funciones.

  4. Para utilizar como funciones de ''Internacionalización (i18n)'' o ''Localización (l10n)''.

  5. Para separar los dígitos del valor literal del número.

Here hay un buen artículo con ejemplos de mingrammer .


_ tiene 3 usos convencionales principales en Python:

  1. Para mantener el resultado de la última expresión ejecutada (/ declaración) en una sesión de intérprete interactivo. Este precedente fue establecido por el intérprete estándar de CPython, y otros intérpretes han seguido el ejemplo
  2. Para la búsqueda de traducción en i18n (vea la documentación de gettext por ejemplo), como en el código como: raise forms.ValidationError(_("Please enter a correct username"))
  3. Como un nombre de variable "desechable" de propósito general para indicar que parte del resultado de una función se ignora deliberadamente, como en el código como: label, has_label, _ = text.partition('':'')

Los dos últimos propósitos pueden entrar en conflicto, por lo que es necesario evitar el uso de _ como una variable desechable en cualquier bloque de código que también lo use para la traducción i18n (muchas personas prefieren un doble guión bajo, __ , como su variable desechable por exactamente este motivo) .