Sobes.tech
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.