Junior — Middle
Wyjaśnij koncepcję dekoratorów w Pythonie i jak są one używane do zmiany zachowania funkcji.
sobes.tech AI
Odpowiedź od AI
Dekoratory w Pythonie to funkcje, które przyjmują inną funkcję i zwracają nową funkcję z zmienionym lub rozszerzonym zachowaniem, nie zmieniając kodu źródłowego dekorowanej funkcji.
Są często używane do:
- Logowania wywołań
- Sprawdzania uprawnień dostępu
- Pamięci podręcznej wyników
- Pomiaru czasu wykonania
Przykład prostego dekoratora, który wyświetla wiadomość przed i po wywołaniu funkcji:
def decorator(func):
def wrapper(*args, **kwargs):
print("Przed wywołaniem funkcji")
result = func(*args, **kwargs)
print("Po wywołaniu funkcji")
return result
return wrapper
@decorator
def powiedz_czesc(name):
print(f"Cześć, {name}!")
powiedz_czesc("Świecie")
Wynik będzie wyglądał tak:
Przed wywołaniem funkcji
Cześć, Świecie!
Po wywołaniu funkcji
W ten sposób dekoratory pozwalają na dynamiczną zmianę zachowania funkcji bez zmiany ich kodu źródłowego.