Page cover

💾Decorators

1. Conceptos avanzados sobre funciones

En Python las funciones también se consideran objetos y como consecuencia de esto se pueden asignar a una variable, almacenarlas en estructuras de datos (listas, tuplas, diccionarios...) o incluso pasarlas como argumento de otras funciones.

def func():
    print("Hola mundo")
    
func()
Hola mundo

func
<function __main__.func()>

var = func

var()
Hola mundo

def func2(funcion):
    funcion()
    
func2(func)
Hola mundo

2. ¿Qué es un decorator?

Los decorator envuelven una función, modificando su comportamiento realizando una combinación de todas las propiedades que hemos visto anteriormente.

Podemos utilizar decorators para modificar el comportamiento de una función que programemos, por ejemplo, añadiendo condiciones que se evalúen antes de ejecutar la función ya existente que no queremos modificar.

3. Syntactic Sugar

La sintaxis que hemos utilizado en el apartado anterior para definir el decorator es bastante compleja, por ello, Python nos proporciona una alternativa mucho más sencilla.

4. Decorators en las Clases

Una de las cosas interesantes sobre los decorators es que Python nos proporciona varios definidos por defecto que podemos utilizar dentro de una clase.

Uno de los decorators más interesantes que podemos utilizar es @property, que nos permite definir métodos en una clase para consultar y modificar un atributo interno.

Última actualización