En Python, _ funciona como patrón comodín en sentencias match ... case y te permite definir una rama por defecto.

Sí, el guión bajo, _, también es una palabra clave suave, pero solo cuando aparece en el último case de una sentencia match. En ese contexto, _ captura cualquier valor que no coincida con los patrones anteriores.

Sintaxis

La sintaxis básica para usar _ como palabra clave suave aparece dentro de una estructura match ... case:

Sintaxis de Python
match value:
    case "pattern1":
        # Acciones para pattern1
    case "pattern2":
        # Acciones para pattern2
    case _:
        # Acciones por defecto para cualquier otro valor

En esta sintaxis, case _: actúa como un patrón comodín o catch-all; es decir, captura cualquier valor que no haya coincidido con los patrones anteriores.

El guión bajo, _, se considera palabra clave solo en el contexto de match ... case. Fuera de ese contexto, _ es simplemente un identificador válido, que generalmente se utiliza para indicar que una variable es temporal o descartable.

Ejemplos prácticos

Aquí tienes un ejemplo de cómo puedes usar _ como palabra clave suave en patrones estructurales:

Python REPL
>>> def check_service_status(code):
...     match code:
...         case 200:
...             return "OK"
...         case 404:
...             return "No encontrado"
...         case _:
...             return "Cualquier otro estado"
...

>>> check_service_status(200)
'OK'
>>> check_service_status(404)
'No encontrado'
>>> check_service_status(500)
'Cualquier otro estado'

Como puedes ver, _ te permite definir una salida controlada para los casos no contemplados en los case que le preceden.

Uso de _

Los usos principales de _ como palabra clave suave en Python son estos:

  • Definir el caso por defecto en bloques match ... case
  • Ignorar partes no relevantes dentro de patrones de clase

Resumiendo

En Python, _ actúa como palabra clave suave en la coincidencia estructural de match ... case. Su función es representar un comodín que coincide con cualquier valor no capturado por los patrones anteriores.

Al usar _ en ramas por defecto, tu lógica de coincidencia queda más clara, más declarativa y más fácil de mantener.