En Python, los decoradores son una forma elegante y poderosa de modificar o extender el comportamiento de las funciones o métodos, sin alterar permanentemente su código. Son ideales para agregar funcionalidades de manera limpia y reutilizable. Ahora, vamos a explorar cómo funcionan los decoradores y cómo puedes utilizarlos en tus proyectos.
¿Qué es un Decorador?
Un decorador es esencialmente una función que toma otra función como argumento, agrega alguna funcionalidad y devuelve una función. Los decoradores permiten que agregues comportamientos a funciones y métodos de manera declarativa. Un aspecto fundamental de los decoradores es que permiten utilizar composición de funciones de una manera que es fácil de entender y de usar.
Ejemplo Básico de un Decorador
def mi_decorador(func):
def envoltura():
print(""Algo se está preparando antes de llamar a la función."")
func()
print(""Algo se está haciendo después de que la función ha sido llamada."")
return envoltura
@mi_decorador
def saluda():
print(""¡Hola mundo!"")
saluda()
En este ejemplo, mi_decorador es una función que toma otra función saluda y extiende su comportamiento sin modificarlo directamente. Cuando llamas a saluda(), realmente estás llamando a envoltura(), que ejecuta código antes y después de llamar a saluda(), respectivamente.
Decoradores con Parámetros
Los decoradores no están limitados a simples encapsulaciones. También pueden aceptar argumentos proporcionando otra capa de envoltura:
Este decorador maneja argumentos y se puede utilizar para extender la funcionalidad de cualquier función que tome cualquier número de argumentos y devuelva un resultado.
Aplicaciones Comunes de Decoradores
Registro (Logging): Agregar registros automáticos a las funciones.
Control de acceso: Verificar permisos antes de ejecutar ciertas funciones.
Caché: Guardar los resultados de funciones costosas para no tener que recomputarlos.
Medición de tiempo: Registrar cuánto tiempo toma la ejecución de una función.
Los decoradores son una herramienta muy poderosa en Python que facilita seguir los principios de la programación modular y la separación de preocupaciones, esencial para construir aplicaciones mantenibles y escalables.
En Python, los decoradores son una forma elegante y poderosa de modificar o extender el comportamiento de las funciones o métodos, sin alterar permanentemente su código. Son ideales para agregar funcionalidades de manera limpia y reutilizable. Ahora, vamos a explorar cómo funcionan los decoradores y cómo puedes utilizarlos en tus proyectos.
¿Qué es un Decorador?
Un decorador es esencialmente una función que toma otra función como argumento, agrega alguna funcionalidad y devuelve una función. Los decoradores permiten que agregues comportamientos a funciones y métodos de manera declarativa. Un aspecto fundamental de los decoradores es que permiten utilizar composición de funciones de una manera que es fácil de entender y de usar.
Ejemplo Básico de un Decorador
En este ejemplo,
mi_decorador
es una función que toma otra funciónsaluda
y extiende su comportamiento sin modificarlo directamente. Cuando llamas asaluda()
, realmente estás llamando aenvoltura()
, que ejecuta código antes y después de llamar asaluda()
, respectivamente.Decoradores con Parámetros
Los decoradores no están limitados a simples encapsulaciones. También pueden aceptar argumentos proporcionando otra capa de envoltura:
Este decorador maneja argumentos y se puede utilizar para extender la funcionalidad de cualquier función que tome cualquier número de argumentos y devuelva un resultado.
Aplicaciones Comunes de Decoradores
Los decoradores son una herramienta muy poderosa en Python que facilita seguir los principios de la programación modular y la separación de preocupaciones, esencial para construir aplicaciones mantenibles y escalables.