Moduł czwarty stanowi kompleksowe wprowadzenie do wzorca projektowego dekoratora w języku Python, zaczynając od podstaw teoretycznych i domknięć funkcji (closures), które stanowią fundament działania dekoratorów. Omówiono składnię z użyciem znaku @, tworzenie prostych dekoratorów oraz dekoratorów przyjmujących parametry konfiguracyjne wymagające trójpoziomowego zagnieżdżenia funkcji. Zwrócono szczególną uwagę na rolę functools.wraps, który zachowuje metadane oryginalnych funkcji, takie jak nazwa i docstring, co jest kluczowe dla czytelności i debugowania kodu. Przedstawiono również dekorowanie funkcji z argumentami *args i **kwargs, dekoratory klas i metod, łańcuchowanie wielu dekoratorów oraz praktyczne zastosowania obejmujące logowanie, cache, walidację uprawnień i profilowanie czasu wykonania. Całość uzupełniono przykładami poprawnego użycia, typowymi błędami i antywzorcami, które prowadzą do wycieków pamięci lub spadku wydajności.
Kluczowe zagadnienia modułu:
- Wzorzec dekorator i domknięcia (closures) — teoretyczne podstawy oraz składnia w Pythonie.
- Tworzenie prostych dekoratorów i składnia z użyciem znaku
@. - Rola
functools.wraps— zachowanie metadanych dekorowanych funkcji. - Dekoratory z parametrami, dekorowanie funkcji z argumentami, dekoratory klas i metod oraz łańcuchowanie dekoratorów.
- Praktyczne zastosowania: logowanie, cache, walidacja uprawnień, profilowanie — typowe błędy i dobre praktyki.


















































