Usa decoradores Python

Jan 19 2023
Los decoradores son una herramienta poderosa que se puede usar para agregar funcionalidad a funciones y clases existentes sin modificar su código. Se pueden usar para tareas como el registro, el almacenamiento en caché y la validación, y pueden ayudar a mantener su código organizado y mantenible.

Los decoradores son una herramienta poderosa que se puede usar para agregar funcionalidad a funciones y clases existentes sin modificar su código. Se pueden usar para tareas como el registro, el almacenamiento en caché y la validación, y pueden ayudar a mantener su código organizado y mantenible.

Entonces... ¿qué son los decoradores?

Un decorador es un tipo especial de función que toma otra función como argumento y devuelve una nueva función. La nueva función suele ser una versión modificada de la función original y, a menudo, se usa para agregar funcionalidad adicional.

¿Cómo usar es?

Un decorador se aplica a una función o clase colocando el símbolo "@" seguido del nombre de la función del decorador antes de la definición de la función o clase.

Aquí hay un ejemplo de un decorador simple que agrega funcionalidad de registro a una función:

def log_decorator(func):
    def wrapper(*args, **kwargs):
        print("Calling function:", func.__name__)
        result = func(*args, **kwargs)
        print("Function returned:", result)
        return result
    return wrapper

@log_decorator
def my_function(x, y):
    return x + y

my_function(1, 2)

La salida de este código será:

Calling function: my_function
Function returned: 3

Dosis decoradores pueden obtener valores?

¡Sí! También puedes pasar argumentos a los decoradores muy fácilmente.

def repeat(num):
    def repeat_decorator(func):
        def wrapper(*args, **kwargs):
            for i in range(num):
                result = func(*args, **kwargs)
            return result
        return wrapper
    return repeat_decorator

@repeat(num=3)
def my_function(x):
    return x * x

print(my_function(3))

¿Recordar?

los decoradores son un tipo especial de funciones que toman otra función como argumento y devuelven una nueva función, generalmente una versión modificada de la función original, que se usa para agregar funcionalidad. Se aplican a una función o clase colocando el símbolo "@" seguido del nombre de la función del decorador antes de la definición de la función o clase. También pueden tomar argumentos para personalizar aún más el comportamiento del decorador.

Buena suerte Shilo