Middle
Que tarefas resolveu com os seus decoradores em Python?
sobes.tech IA
Resposta da IA
Em Python, utilizava decoradores para resolver várias tarefas relacionadas com a extensão da funcionalidade das funções sem alterar o seu código. Por exemplo:
- Registo de chamadas de funções — para registar automaticamente os parâmetros de entrada e os resultados.
- Caching de resultados — para otimizar chamadas repetidas com os mesmos argumentos.
- Verificação de permissões de acesso — em aplicações web para restringir o acesso a certas funções.
- Medida do tempo de execução — para profiling e otimização do código.
Exemplo de um decorador simples para logging:
import functools
def log_calls(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
print(f"Chamada de {func.__name__} com args={args}, kwargs={kwargs}")
result = func(*args, **kwargs)
print(f"{func.__name__} retornou {result}")
return result
return wrapper
@log_calls
def add(a, b):
return a + b
add(2, 3)
Este método ajuda a escrever um código mais limpo e fácil de manter, separando a lógica auxiliar da lógica principal.