Menu
Coddy logo textTech

Python Syntax

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

En la lección anterior, vimos cómo crear decoradores de funciones, sin embargo, Python proporciona una forma mucho más elegante de lograr esta funcionalidad utilizando el símbolo @.

Por ejemplo,

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

@my_decorator
def my_function():
	print("Inside my_function.")

Cuando ejecutamos my_function(), veremos una salida como esta:

Before function is called.
Inside my_function.
After function is called.

Esto muestra que la función decoradora my_decorator pudo modificar el comportamiento de my_function al agregar algo de código adicional antes y después de que fuera llamada.

challenge icon

Desafío

Fácil

Se te proporciona el código de una función add.

Tu tarea es escribir un decorador de función llamado debug, como en la lección anterior, pero con algunas adiciones:

  • Añade el decorador de función debug a add utilizando el símbolo @.
  • La función debug debe admitir argumentos de función.

Para admitir una función con argumentos en un decorador,

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

Ejemplo:

Para una llamada a la función add(2, 3), se debe imprimir,

Calling add with arguments (2, 3)
add returned: 5

Pruébalo tú mismo

# Escribe el código aquí


def add(a, b):
    return a + b

Todas las lecciones de Decoradores de Python

Practica por tu cuenta: Compilador de Python online