Python · Intermediário · Inglês · Técnico
decorator
Função que recebe outra função (ou classe) e devolve uma versão modificada, aplicada com @ acima da definição. Serve para adicionar log, cache, autorização e outros comportamentos.
Onde usar
Aparece em @app.route, @property e @pytest.fixture. Num review, vale checar se o decorator usa functools.wraps para preservar o nome e a docstring da função original.
Em código
def log(f):
def novo(*a):
print('chamou', f.__name__)
return f(*a)
return novo
@log
def soma(a, b):
return a + bExemplos
I wrote a decorator to log every call.
Escrevi um decorator para registrar cada chamada.
The route is registered by a decorator.
A rota é registrada por um decorator.
Cuidado
Não confunda com o padrão de projeto Decorator da orientação a objetos; aqui é um recurso de sintaxe para envolver funções.
Sinônimos
decorador