Blog Idea07
def funkcja_dekorujaca(funkcja_dekorowana): #definicja dekoratora
funkcja_dekorowana.atrybut = True
return funkcja_dekorowana
Powyżej zdefiniowaliśmy dekorator. Dla każdej funkcji, na której go użyjemy atrybut “atrybut' zostanie ustawiony na True.
Przykład użycia dekoratora:
def funkcja():
return 1
funkcja = funkcja_dekorujaca(funkcja) # użycie dekoratora
Nadszedł czas na tak zwany lukier składniowy. Poniżej przedstawiono zabieg pozwalający bardzo szybko I przyjemnie dekorować nowe funkcje.
@funkcja_dekorujaca
def funkcja():
return 1
Powyższy zapis realizuje dokładnie to samo zadanie co pierwszy przykład użycia dekoratora. Mam nadzieję, że teraz tajemnicze zapisy nad funkcjami poprzedzone małpami staną się zrozumiałe dla początkujących programistów frameworków webowych, gdzie ostatnimi czasy dekoratory pojawiają się na każdym kroku.
Sławomir Wawrzyniak