Use decoradores Python
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





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)