Pattern Matching en Python

Abstracto

Lenguajes como Haskell y Ruby incluyen una sintaxis para utilizar Pattern Matching como una alternativa al if-else. Dirigir un programa según el patrón que cumple una variable es muy útil, por lo que Python decidió incluir esta estructura. En esta charla veremos cómo usarla y qué beneficios trae.

Descripción

Pattern Matching consiste en especificar patrones que un tipo de dato complejo podría cumplir y, en caso de que coincida con la estructura definida, ejecutar una operación. Originalmente fue diseñado para lenguajes funcionales fuertemente tipados, pero poco a poco se fue extendiendo y adaptando para ser soportado en lenguajes orientados a objetos. Los desarrolladores de Python comprendieron que las estructuras de datos son cada vez más complejas y que existe la necesidad de extraer información fácilmente de ellas, por lo que decidieron incluirlo en el lenguaje.

Hasta la versión 3.10, Python sólo soportaba una forma limitada de Pattern Matching en secuencias, a través de lo que se conoce como Deconstrucción. En ella se basaron para ofrecer la instrucciones “match” y “case” como estructura de control. En esta charla, aprenderemos cómo usarla, cuál es el alcance de las variables que se definen en ella y cómo mejora la escritura y lectura del código.