Python a-z

Twoje centrum interaktywnej nauki Pythona: fiszki, przykłady kodu i edytor w przeglądarce.

Poziom: średni Fiszka #143 · Python

Co to są dekoratory parametryzowane i jak je tworzyć?

💡 Wskazówka do nauki: Zanim odsłonisz odpowiedź poniżej, spróbuj samodzielnie sformułować definicję lub napisać krótki przykład kodu w głowie (albo w naszym edytorze online).

Pokaż odpowiedź i przykład kodu

Opis i wyjaśnienie:

Dekoratory parametryzowane to dekoratory, które przyjmują argumenty podczas dekorowania funkcji. Są one implementowane jako fabryki dekoratorów - funkcje zwracające dekorator. Użycie dekoratora parametryzowanego pozwala na większą elastyczność i ponowne wykorzystanie logiki dekoratora.

Przykład w Pythonie:

def loguj(f):
    def wrapper(*a, **k):
        print("start"); r = f(*a, **k); print("stop"); return r
    return wrapper

@loguj
def hello():
    print("Hej")
hello()