Decorators em Python

Um decorator é uma função que recebe outra função e estende seu comportamento sem modificá-la diretamente. Eles dependem de closures para guardar a referência da função original.

import functools

def log(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        print(f"chamando {func.__name__}")
        return func(*args, **kwargs)
    return wrapper

@log
def soma(a, b):
    return a + b

functools.wraps preserva o nome e a docstring da função decorada.

Veja também: closures.

Construído com Eleventy · busca por Lunr.js