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.
Desafío
FácilSe 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
debugaaddutilizando 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 wrapperEjemplo:
Para una llamada a la función add(2, 3), se debe imprimir,
Calling add with arguments (2, 3)
add returned: 5Pruébalo tú mismo
# Escribe el código aquí
def add(a, b):
return a + bTodas las lecciones de Decoradores de Python
Practica por tu cuenta: Compilador de Python online