logo cosasdedevs
¿Qué es el operador walrus y cómo utilizarlo en Python?

¿Qué es el operador walrus y cómo utilizarlo en Python?



My Profile
Sep 14, 2021

¡Hola! Espero que estéis bien, yo terminando ya las vacas 😢, pero bueno, he recargado las pilas que es lo importante 💪. En el tutorial de esta semana vamos a seguir con la ruta de Python y esta vez vamos a ver como utilizar el operador walrus en Python.

¿Qué es el operador Walrus?

El operador walrus se escribe := y se llama así por su similitud a una morsa (o eso dicen). En Python se utiliza para asignar valores a variables mientras se utilizan y se puede usar desde la versión 3.8 de Python.

Ejemplos con el operador Walrus

Ahora vamos a ver un ejemplo de código sin utilizar Walrus y luego lo transformaremos para ejemplificar como usar este operador.


def is_par(num):
    if(num % 2 == 0):
        return f'{num} is a par number'
    return None

my_list = [1, 3, 2, 5, 6, 7, 9, 10, 16, 4]

for num in my_list:
    num_is_par = is_par(num)
    if num_is_par is not None:
        print(num_is_par)

Tenemos una función que retorna un mensaje si un número es par y si no lo es devuelve None. Después creamos un listado de números random pares e impares y por último ejecutamos un ciclo for para recorrer la lista. Con la función is_par comprobamos si el valor es par y si la función no ha retornado None mostramos el mensaje.

Pues bien, con el operador Walrus podríamos reescribir el ciclo for de forma que quedaría así:

for num in my_list:
    if(num_is_par := is_par(num)) is not None:
        print(num_is_par)

En este caso, asignamos el valor a la variable num_is_par desde el propio if y comprobamos que no es igual a None y si cumple la condición mostramos el mensaje.

Operador Walrus en List Comprehensions

También podemos utilizar este operador con List Comprehensions. Vamos a verlo con un ejemplo y ahora lo explico:

def is_par_new(num):
    if(num % 2 == 0):
        return num
    return None

my_list = [1, 3, 2, 5, 6, 7, 9, 10, 16, 4]

par_numbers = [num_is_par_new for num in my_list if (num_is_par_new := is_par_new(num)) is not None]
print(par_numbers)

En este caso hemos definido una nueva función que nos retornará el número si es par y None si no lo es. Después definimos una lista con números pares e impares y por último definimos una variable que contendrá una lista con el resultado de nuestra List Comprehension.

La variable num_is_par_new será la variable en la que guardaremos el número par, después recorremos la lista y en la condición if comprobamos y asignamos el valor con el operador Walrus si no retorna None.

Conclusiones

El uso del operador Walrus puede ser interesante, ya que como vemos en los primeros ejemplos, el operador Walrus hace que nuestro código quede más compacto y limpio. Sin embargo, el primer código puede ser legible por cualquier programador ya sea Junior o Senior y el segundo puede llevar a la confusión a quien no conozca este operador así que dejo en vuestras manos si decidís usarlo o no.

Y bueno, eso es todo por este tutorial. Espero que os haya gustado y como siempre, os recomiendo seguirme en Twitter para estar al tanto de los nuevos tutoriales y suscribiros a mi canal de YouTube en el que vamos a extender todos los aprendizajes de este blog.

Nos leemos 👋.

🐍 Sígueme en Twitter

Si te gusta el contenido que subo y no quieres perderte nada, sígueme en Twitter y te avisaré cada vez que cree contenido nuevo 💪
Luego ¡Te sigo!

Nos tomamos en serio tu privacidad

Utilizamos cookies propias y de terceros para mejorar la experiencia del usuario a través de su navegación. Si pulsas entendido aceptas su uso. Ver política de cookies.