Junior — Middle
Обяснете концепцията за декоратори в Python и как се използват за промяна на поведението на функциите.
sobes.tech AI
Отговор от AI
Декораторите в Python са функции, които приемат друга функция и връщат нова функция с променено или разширено поведение, без да променят изходния код на декорираната функция.
Често се използват за:
- Регистриране на извиквания
- Проверка на права за достъп
- Кеширане на резултати
- Измерване на времето за изпълнение
Пример за прост декоратор, който показва съобщение преди и след извикването на функция:
def decorator(func):
def wrapper(*args, **kwargs):
print("Преди извикването на функцията")
result = func(*args, **kwargs)
print("След извикването на функцията")
return result
return wrapper
@decorator
def say_hello(name):
print(f"Здравей, {name}!")
say_hello("Свят")
Изходът ще бъде:
Преди извикването на функцията
Здравей, Свят!
След извикването на функцията
По този начин, декораторите позволяват динамично да се променя поведението на функциите, без да се променя техният изходен код.