Decoradores
Aprenda a usar decoradores para modificar o ampliar funciones.
Decoradores es una lección gratuita de Learn AI with Python 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 Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 5 lecciones en total.
Introducción a los decoradores
Introducción a los decoradores
Los decoradores son una función muy útil de Python que permite modificar el comportamiento de funciones o métodos. A menudo se usan para agregar funcionalidad a las funciones sin modificar su código.
En esta lección, aprenderá qué son los decoradores, cómo usarlos 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 nueva función con funcionalidad adicional. A menudo se usa 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 usa un decorador, Python reemplaza la función original por la función envoltorio 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()Usar decoradores con argumentos
Usar decoradores con argumentos
Los decoradores pueden trabajar con funciones que reciben argumentos mediante *args y **kwargs en la función envoltorio:
# 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))Encadenar varios decoradores
Encadenar 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()Crear decoradores parametrizados
Crear 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 utilizan 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 una propiedad.
Errores comunes con los decoradores
Errores comunes 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 envoltorio.
¿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 utilizar decoradores básicos, parametrizados y encadenados.
- Casos de uso habituales y decoradores integrados en Python.
¡Muy bien! 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 Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 5 lecciones en total.
¿Qué aprenderé en «Decoradores»?
Aprenda a usar decoradores para modificar o ampliar funciones. Practicas Learn AI with Python 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 Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python 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 Learn AI with Python?
Sí. Cada lección de Learn AI with Python 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