Solución:
_
tiene 3 usos convencionales principales en Python:
-
Para mantener el resultado de la última expresión ejecutada (declaración /) en una sesión de intérprete interactiva (ver documentos). Este precedente fue establecido por el intérprete estándar de CPython, y otros intérpretes han seguido su ejemplo.
-
Para la búsqueda de traducción en i18n (consulte la documentación de gettext, por ejemplo), como en código como
raise forms.ValidationError(_("Please enter a correct username"))
-
Como nombre de variable “desechable” de uso general:
-
Para indicar que parte del resultado de una función se ignora deliberadamente (conceptualmente, se descarta), como en un código como:
label, has_label, _ = text.partition(':')
-
Como parte de la definición de una función (usando
def
olambda
), donde la firma es fija (por ejemplo, mediante una devolución de llamada o una API de clase principal), pero esta implementación de función en particular no necesita todos los parámetros, como en el código como:def callback(_): return True
[For a long time this answer didn’t list this use case, but it came up often enough, as noted here, to be worth listing explicitly.]
Este caso de uso puede entrar en conflicto con el caso de uso de búsqueda de traducción, por lo que es necesario evitar el uso
_
como una variable desechable en cualquier bloque de código que también la use para la traducción de i18n (muchas personas prefieren un guión bajo doble,__
, como su variable desechable exactamente por esta razón).Los linters a menudo reconocen este caso de uso. Por ejemplo
year, month, day = date()
levantará una advertencia de pelusa siday
no se usa más adelante en el código. La solución, siday
realmente no es necesario, es escribiryear, month, _ = date()
. Lo mismo con las funciones lambda,lambda arg: 1.0
crea una función que requiere un argumento pero no lo usa, que será capturado por lint. La solución es escribirlambda _: 1.0
. Una variable no utilizada a menudo esconde un error / error tipográfico (p. Ej., Setday
pero usadya
en la siguiente línea). -
Es solo un nombre de variable, y es convencional en Python usar _
para variables desechables. Simplemente indica que la variable de bucle no se usa realmente.
Guion bajo _
se considera como “No me importa” o “Tirar a la basura“variable 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 subrayado
_
también se utiliza para ignorar los valores específicos. Si no necesita los valores específicos o los valores no se utilizan, simplemente asigne los valores al subrayado.Ignore un valor al desembalar
x, _, y = (1, 2, 3) >>> x 1 >>> y 3
Ignorar el índice
for _ in range(10): do_something()