_
tiene 4 usos convencionales principales en Python:
- Para mantener el resultado de la última expresión ejecutada (/ instrucción) en una sesión de intérprete interactiva. 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 un propósito general "usar y tirar" nombre de la variable para indicar que parte de un resultado de la función está siendo ignorada deliberadamente (Conceptualmente, que está siendo desechado.), Como en código como:
label, has_label, _ = text.partition(':')
.
- Como parte de una definición de función (usando
def
o lambda
), cuando se fije la firma (por ejemplo, por una devolución de llamada o la API de la clase padre), pero esta implementación función particular no necesita todos los parámetros, como en el código como:callback = lambda _: True
(Durante mucho tiempo, esta respuesta solo enumeró los primeros tres casos de uso, pero el cuarto caso surgió con suficiente frecuencia, como se señala aquí , para que valga la pena enumerarlo explícitamente)
Los últimos casos de uso de "variable desechable o nombre de parámetro" pueden entrar en conflicto con el caso de uso de búsqueda de traducción, por lo que es necesario evitar usarlo _
como 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 exactamente por este motivo).