Decoradores
Aprenda a usar decoradores para modificar o ampliar funciones.
Decoradores es una lección gratuita de Python For Kids 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 For Kids, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python For Kids incluye 5 lecciones en total.
Introducción a los decoradores
Los decoradores son una potente característica de Python que permite modificar el comportamiento de funciones o métodos. Suelen utilizarse 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?
Un decorador es una función que recibe otra función como entrada y devuelve una nueva función con funcionalidad adicional. Suele utilizarse 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
Cuando utiliza 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()Uso de 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))Encadenamiento de varios decoradores
Puede utilizar 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
Los decoradores parametrizados reciben 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 comunes 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, comprobar los permisos de los usuarios).
- Almacenar en caché los resultados para mejorar el rendimiento.
Decoradores integrados en Python
Python proporciona algunos 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 comunes al usar decoradores
Estos son algunos errores que debe evitar:
- No conservar el nombre y la cadena de documentación de la función original (utilice
functools.wraps). - Utilizar decoradores innecesariamente para tareas sencillas.
- Olvidar gestionar los argumentos en la función envoltorio.
¿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.
¡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 For Kids, actualiza a CoddyKit PRO. El curso de Python For Kids incluye 5 lecciones en total.
¿Qué aprenderé en «Decoradores»?
Aprenda a usar decoradores para modificar o ampliar funciones. Practicas Python For Kids 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 For Kids?
No se requiere experiencia previa. Python For Kids 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 For Kids?
Sí. Cada lección de Python For Kids 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