Menu
Coddy logo textTech

Decorators Usage

Lección 5 de 12 del curso Decoradores de Python de Coddy.

En Python, un decorador es una función que toma otra función como entrada y extiende el comportamiento de la función de entrada sin modificar explícitamente su código. Los decoradores son una forma poderosa de modificar o mejorar el comportamiento de las funciones de una manera flexible y reutilizable.

Aquí hay un ejemplo de una función decoradora simple:

def my_decorator(func):
    def wrapper():
        print("Before the function is called.")
        func()
        print("After the function is called.")
    return wrapper

En este ejemplo, la función my_decorator toma otra función func como entrada y devuelve una nueva función llamada wrapper.

La función wrapper añade algo de comportamiento antes y después de que se llame a la función func.

challenge icon

Desafío

Fácil

Escribe una función decoradora llamada debug que tome una función func como entrada y devuelva una nueva función que imprima el nombre de func y el valor de retorno de func cada vez que sea llamada.

Para obtener el nombre de func, utiliza func.__name__.

Aquí tienes un ejemplo del uso del decorador debug:
 

def hello():
    return "Hello"

debug_hello = debug(hello)
debug_hello()

En este ejemplo, estamos usando el decorador debug para envolver la función hello y crear una nueva función llamada debug_hello. Cuando llamamos a debug_hello(), el decorador imprimirá:

Calling hello
hello returned: Hello

Puedes asumir que todas las funciones pasadas a debug son funciones sin argumentos.

Pruébalo tú mismo

Todas las lecciones de Decoradores de Python

Practica por tu cuenta: Compilador de Python online