miércoles, 7 de agosto de 2019

Python: Funciones Decoradoras

Vamos a ver qué son y para qué sirven las funciones decoradoras.

Las funciones decoradoras son funciones que añaden funcionalidades a otras funciones. Por decirlo de algún modo, "decoran" a otras funciones.
Sirven para agregar una funcionalidad concreta a muchas otras funciones distintas sin tener que repetir el código en todas las funciones.

Vamos a ver un par de ejemplos en código, en el que añadimos dos "print" a dos funciones mediante un decorador:

# Creamos una función decoradora, a la que le pasamos por parámetro otra función:
def funcionDecoradora(funcionParametro):
    # Creamos una función interior, desde la que llamamos a la función que recibimos por parámetro y a la que añadimos las líneas de código adicionales:
    def funcionInterior():
        print("Vamos a realizar un cálculo:")
        funcionParametro()
        print("Cálculo realizado.")
    return funcionInterior

# Anotamos las funciones estándar con el nombre de la función decoradora:
@funcionDecoradora
def suma():
    print(20 + 15)

@funcionDecoradora
def resta():
    print(20 - 15)

# Ejecutamos las funciones estándar y comprobamos que se ejecutan los print adicionales de la función decoradora:
suma()
resta()


# El mismo ejemplo anterior, pero esta vez con parámetros en las funciones:
def funcionDecoradora(funcionParametro):
    def funcionInterior(*args):
        print("Vamos a realizar un cálculo:")
        funcionParametro(*args)
        print("Cálculo realizado.")
    return funcionInterior

@funcionDecoradora
def suma(num1, num2, num3):
    print(num1 + num2 + num3)

@funcionDecoradora
def resta(num1, num2):
    print(num1 - num2)

suma(7, 5, 4)
resta(12, 1)


Y eso es todo.

No hay comentarios:

Publicar un comentario