Description
Python ha carecido durante mucho tiempo de un mecanismo de control de flujo condicional presente en muchos otros lenguajes de programación, algo que permita tomar un valor y compararlo de manera directa y sencilla contra varias opciones. El lenguaje C y sus derivados cuentan con la instrucción switch/case. Otros lenguajes tienen un soporte más sofisticado de pattern matching. Las formas tradicionales para lograr un comportamiento equivalente en Python no eran del todo elegantes. Una opción era escribir una cadena de expresiones if/elif/else. Una segunda opción era utilizar un diccionario con llaves asociadas a funciones. En general esto funciona adecuadamente, pero puede ser complicado de construir, entender y mantener.
Después de varias propuestas fallidas para agregar una sintaxis tipo switch/case a Python, se aceptó finalmente una propuesta reciente para Python 3.10: structural pattern matching (búsquedas de coincidencias de patrones estructurales). Este esquema de pattern matching no solo hace posible realizar coincidencias simples de estilos de switch/case, sino que también admite una gama más amplia de casos de uso. En esta charla se mostrará cómo aprovechar en nuestros programas esta nueva facilidad.