Azúcar sintáctico Python
CategoriasProgramaciónPython

Azúcar sintáctico en Python

Azúcar sintáctico en Python.

Hoy quiero hablar sobre qué es el azúcar sintáctico, para que se usa y porque deberíamos conocerlo. Y como todo no son bondades, veremos también alguna desventaja que tiene por ahí… y no, no es un tipo de azúcar que venden en el supermercado 😆

¿Qué es el azúcar sintáctico?

Cuando hablamos de azúcar sintáctico en el ámbito de la programación, nos referimos a los añadidos y mejoras que se hace sobre la sintaxis de un lenguaje de programación, para que éste, resulte más fácil de leer gracias a escribir el código de una forma más breve y clara. Hay que tener en cuenta que no añade nueva funcionalidad ni mejora la existente, es decir, no cambia el comportamiento del programa. Más bien, y de forma muy resumida, podríamos decir que es un “atajo” que facilita la escritura de código.

Un ejemplo muy sencillo puede ser el siguiente (seguro que lo has visto más de una vez):

a = a + 1

La sentencia anterior hace lo mismo si la escribimos así:

a += 1

¡Eso es azúcar sintáctico!

El ejemplo anterior es muy sencillo y es para que te hagas una ligera idea de lo que es. Más adelante lo veremos con ejemplos más completos.

Pero antes…

¿Por qué lo llamamos azúcar?

Básicamente porque es una forma de “endulzar” nuestro código. Lo que hacemos es agregar cierta “dulzura o facilidad al código” sin que ésta, sea necesaria. Es decir, todo aquello que hacemos con azúcar sintáctico, se puede lograr sin aplicarlo. Como he comentado al principio del artículo, no modificamos el comportamiento del programa, sino que simplificamos el código, por tanto, endulzarlo o no depende de nosotros. Por cierto, ¿te gusta el dulce? 😋

¿Qué ventajas y desventajas tiene?

La principal ventaja que tiene y el principal motivo por el cual se usa, es mejorar la legibilidad del código y facilitar su mantenimiento, pues valga la redundancia, al ser más fácil de entender, es más fácil de mantener.

También otro punto a favor es que hace el proceso de desarrollo mucho más rápido. Recuerda, haremos lo mismo con menos código y gracias a esto, podemos escribir código mucho más rápido acelerando el proceso de desarrollo.

Por último, otra ventaja que podemos destacar es que, al escribir menos código para hacer lo mismo, tenemos menos probabilidades de cometer errores.

Ahora bien, como todo o casi todo en la vida también tiene sus inconvenientes.

Por ejemplo, para un principiante en un lenguaje de programación el azúcar sintáctico no sería útil hasta alcanzar un nivel más alto del lenguaje.

En otras palabras, el ejemplo siguiente para alguien que acaba de empezar en Python no sería apropiado:

pares = [x for x in range(10) if x % 2 == 0]

Al estar tan abreviado dificultaría su comprensión. Por eso sería mejor mostrarle la versión original, es decir, sin azúcar:

pares = []

for x in range(10):

    if x % 2 == 0:

        pares.append(x)

Otra desventaja es su uso en exceso (como todo en la vida). Si nos excedemos en su uso a la larga, el código resultará más difícil de leer y obviamente mantener.

Otro punto negativo y que “choca” un poco es que puede dificultar la depuración, es decir, a veces, sobre todo si hemos abusado un poco del azúcar sintáctico, nos podemos encontrar en que no veamos donde ocurre un determinado error o como se propaga. Esto es debido a que al “atajar” el código y simplificarlo tanto, si se produce algún error, éste puede ser menos evidente de ver.

Y si, ya se que he dicho que una de las ventajas era también tener menos probabilidades de cometer errores al escribir menos código, y sigue siendo así, por eso la clave esta en usarlo con precaución, o sea, usarlo cuando realmente sea necesario que el código sea más claro y comprensible, sin sobrecargarlo innecesariamente.

Y ahora, una vez que hemos visto qué es el azúcar sintáctico y un poco sus ventajas y desventajas, a continuación muestro algunos ejemplos en Python.

Operadores de asignación: Este es el ejemplo más sencillo y, como he mostrado al principio del artículo, en lugar de hacer “x = x + 1“, podemos usar “x += 1”.

# Sin azúcar sintáctico
x = 5
x = x + 1

# Con azúcar sintáctico
x = 5
x += 1

Asignación en secuencia: Quiere decir que podemos asignar varios valores a varias variables a la vez.

# Sin azúcar sintáctico
tupla = (1, 2)
a = tupla[0]
b = tupla[1]

# Con azúcar sintáctico
a, b = (1, 2)

Comprensión de listas, conjuntos y diccionarios: Un ejemplo muy famoso en Python es el uso de comprensiones, que básicamente trata de crear de una forma diferente y más concisa listas, conjuntos y diccionarios evitando así usar bucles for más largos y menos claros.

Por ejemplo, si queremos multiplicar por dos los números del 0 al 9 y agregarlos a una lista:

# Sin azúcar sintáctico
lista = []
for x in range(10):
    lista.append(x * 2)

# Con azúcar sintáctico
lista = [x * 2 for x in range(10)]

Como vemos el código se ha reducido bastante aplicando un poco de… azúcar 😉

Otro ejemplo de comprensión usando diccionarios puede ser el siguiente:

# Sin azúcar sintáctico
cuadrados = {}
for x in range(5):
    cuadrados[x] = x ** 2

# Con azúcar sintáctico
cuadrados = {x: x ** 2 for x in range(5)}

Funciones Lambda: Podemos usar funciones pequeñas y anónimas en una sola línea sin necesidad de declararla con “def”.

Por ejemplo:

# Sin azúcar sintáctico
def al_cuadrado(x):
    return x * x

# Con azúcar sintáctico (función lambda)
al_cuadrado = lambda x: x * x

Decoradores: Nos permiten modificar el comportamiento de una función sin modificar su código.

¿Cómo?

Envolviéndola en otra función.

Ejemplo:

# Definimos el decorador
def decorador(func):
    def accion():
        print("Hacemos algo ANTES de la función...")
        func()
        print("Hacemos algo DESPUÉS de la función...")
    return accion

# Sin azúcar sintáctico
def saludar():
    print("Hola!")

saludar = decorador(saludar)

# Aplicamos el decorador a una función (con azúcar sintáctico)
@decorador
def saludar():
    print("Hola, que tal?")

# Llamamos la función decorada
saludar()

Y hasta aquí el tema del azúcar sintáctico en Python.

Como hemos visto tiene sus ventajas y desventajas, así que recuerda usarlo de manera inteligente y equilibrada y aprovecha el principal beneficio que es hacer que tu código sea más claro y fácil de leer. Pero recuerda, no abuses, sino sucederá todo lo contrario.

¡Un saludo! 😉  

Sobre el autor

Comparte:

Este artículo está publicado bajo una licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional . Puedes compartirlo y adaptarlo, incluso con fines comerciales, siempre que cites al autor y mantengas esta misma licencia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos
Responsable Óscar Martínez +info...
Finalidad Gestionar y moderar los comentarios +info...
Legitimación Consentimiento del interesado. +info...
Destinatarios No se cederán datos a terceros, salvo obligación legal +info...
Derechos Acceder, rectificar y cancelar los datos, así como otros derechos. +info...
Información adicional Puedes consultar la información adicional y detallada sobre protección de datos en nuestra página de política de privacidad.

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.