Sobes.tech
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("Свят")

Изходът ще бъде:

Преди извикването на функцията
Здравей, Свят!
След извикването на функцията

По този начин, декораторите позволяват динамично да се променя поведението на функциите, без да се променя техният изходен код.