Use decoradores Python

Jan 19 2023
Os decoradores são uma ferramenta poderosa que pode ser usada para adicionar funcionalidade a funções e classes existentes sem modificar seu código. Eles podem ser usados ​​para tarefas como registro, armazenamento em cache e validação e podem ajudar a manter seu código organizado e fácil de manter.

Os decoradores são uma ferramenta poderosa que pode ser usada para adicionar funcionalidade a funções e classes existentes sem modificar seu código. Eles podem ser usados ​​para tarefas como registro, armazenamento em cache e validação e podem ajudar a manter seu código organizado e fácil de manter.

Então... o que são decoradores?

Um decorador é um tipo especial de função que usa outra função como argumento e retorna uma nova função. A nova função geralmente é uma versão modificada da função original e geralmente é usada para adicionar funcionalidades adicionais.

Como usar é?

Um decorador é aplicado a uma função ou classe colocando o símbolo “@” seguido do nome da função do decorador antes da definição da função ou classe.

Aqui está um exemplo de um decorador simples que adiciona a funcionalidade de log a uma função:

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)

A saída deste código será:

Calling function: my_function
Function returned: 3

Decoradores de dose podem obter valores?

Sim! Você também pode passar argumentos para decoradores com muita facilidade

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))

Lembrar?

decorators são tipos especiais de funções que usam outra função como argumento e retornam uma nova função, geralmente uma versão modificada da função original, que é usada para adicionar funcionalidade. Eles são aplicados a uma função ou classe colocando o símbolo “@” seguido do nome da função decoradora antes da definição da função ou classe. Eles também podem receber argumentos para personalizar ainda mais o comportamento do decorador.

Boa sorte Shilo