Decoradores
Aprenda a usar decoradores para modificar o ampliar funciones
Decoradores es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 1 de 5. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 5 lecciones en total.
Introducción a los decoradores
Introducción a los decoradores
Los decoradores son una potente característica de Python que permite modificar el comportamiento de funciones o métodos. Se suelen utilizar para añadir funcionalidad a las funciones sin modificar su código.
En esta lección, aprenderá qué son los decoradores, cómo utilizarlos y cómo crear sus propios decoradores.

¿Qué es un decorador?
¿Qué es un decorador?
Un decorador es una función que recibe otra función como entrada y devuelve una función nueva con funcionalidad adicional. Se suele utilizar con la sintaxis @decorator_name.
# Basic example of a decorator
def decorator(func):
def wrapper():
print("Before the function call")
func()
print("After the function call")
return wrapper
@decorator
def say_hello():
print("Hello!")
say_hello()Cómo funcionan los decoradores
Cómo funcionan los decoradores
Cuando utiliza un decorador, Python reemplaza la función original por la función envolvente que devuelve el decorador.
# How decorators work
def decorator(func):
def wrapper():
print("Wrapper called")
func()
return wrapper
@decorator
def greet():
print("Greetings!")
print(greet.__name__) # Outputs: wrapper
greet()Uso de decoradores con argumentos
Uso de decoradores con argumentos
Los decoradores pueden funcionar con funciones que reciben argumentos mediante *args y **kwargs en la función envolvente:
# Decorator for functions with arguments
def decorator(func):
def wrapper(*args, **kwargs):
print(f"Arguments: {args}, {kwargs}")
return func(*args, **kwargs)
return wrapper
@decorator
def add(a, b):
return a + b
print(add(3, 5))Encadenamiento de varios decoradores
Encadenamiento de varios decoradores
Puede usar varios decoradores en una sola función. Se aplican en el orden en que aparecen, de arriba abajo:
# Chaining multiple decorators
def decorator1(func):
def wrapper():
print("Decorator 1")
func()
return wrapper
def decorator2(func):
def wrapper():
print("Decorator 2")
func()
return wrapper
@decorator1
@decorator2
def greet():
print("Hello!")
greet()Creación de decoradores parametrizados
Creación de decoradores parametrizados
Los decoradores parametrizados aceptan argumentos y permiten una funcionalidad más flexible:
# Parameterized decorator
def repeat(times):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(times):
func(*args, **kwargs)
return wrapper
return decorator
@repeat(3)
def say_hello():
print("Hello!")
say_hello()Casos de uso habituales de los decoradores
Casos de uso habituales de los decoradores
Los decoradores se usan habitualmente para:
- Registrar las llamadas a funciones y sus argumentos.
- Medir el tiempo de ejecución de las funciones.
- Controlar el acceso, por ejemplo, comprobando los permisos de los usuarios.
- Almacenar en caché los resultados para mejorar el rendimiento.
Decoradores integrados en Python
Decoradores integrados en Python
Python proporciona varios decoradores integrados, entre ellos:
@staticmethod: Define un método estático.@classmethod: Define un método de clase.@property: Define un método de propiedad.
Errores habituales con los decoradores
Errores habituales con los decoradores
Estos son algunos errores que debe evitar:
- No conservar el nombre y la cadena de documentación de la función original (use
functools.wraps). - Usar decoradores innecesariamente para tareas sencillas.
- Olvidar gestionar los argumentos en la función envolvente.
¿Qué hemos aprendido?
¿Qué hemos aprendido?
En esta lección, ha aprendido:
- Qué son los decoradores y cómo funcionan en Python.
- Cómo crear y usar decoradores básicos, parametrizados y encadenados.
- Casos de uso habituales y decoradores integrados en Python.
¡Buen trabajo! Pasemos al siguiente tema.

Preguntas frecuentes
¿La lección «Decoradores» es gratis?
Sí — el texto completo de «Decoradores» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 5 lecciones en total.
¿Qué aprenderé en «Decoradores»?
Aprenda a usar decoradores para modificar o ampliar funciones Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Python Academy?
No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 5.
¿Cuánto tiempo toma la lección «Decoradores»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Python Academy?
Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Decoradores
- Generadores
- Gestores de contexto (sentencias with)
- Comprensiones (de listas, conjuntos y diccionarios)
- Iteradores e iterables