Menu
Coddy logo textTech

Introducción a los decoradores

Parte de la sección Object Oriented Programming del Journey de Python de Coddy — lección 9 de 64.

Los decoradores son una forma de modificar o mejorar funciones y clases sin cambiar su código original. Utilizan el símbolo @.

Aquí hay un ejemplo de un decorador simple: 

def my_decorator(func):
    def wrapper():
        print("Before function runs")
        func()
        print("After function runs")
    return wrapper

Aplica el decorador usando @:

@my_decorator
def say_hello():
    print("Hello!")

Llama a la función decorada:

say_hello()

Resultado:

Before function runs
Hello!
After function runs

El @my_decorator es equivalente a escribir:

def say_hello():
    print("Hello!")

say_hello = my_decorator(say_hello)

Pero la sintaxis @ es mucho más limpia y más fácil de leer.

Punto clave: Los decoradores envuelven funciones para añadir funcionalidad adicional sin modificar el código de la función original

Hoja de referencia

Los decoradores modifican o mejoran las funciones sin cambiar su código original utilizando el símbolo @.

Estructura básica de un decorador:

def my_decorator(func):
    def wrapper():
        print("Before function runs")
        func()
        print("After function runs")
    return wrapper

Aplicar un decorador usando @:

@my_decorator
def say_hello():
    print("Hello!")

La sintaxis @my_decorator es equivalente a:

say_hello = my_decorator(say_hello)

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Object Oriented Programming