Middle
Какво е декоратор?
sobes.tech AI
Отговор от AI
Декораторът е шаблон за дизайн, който позволява динамично добавяне на ново поведение към обект без да променя неговата структура.
Основни характеристики:
- Гъвкавост: Позволява добавяне или премахване на функционалности на обекти по време на изпълнение.
- Независимост: Новата функционалност може да бъде добавена независимо от основния клас.
- Използване на композиция: Декораторът съдържа препратка към декорирания обект и пренасочва към него заявките, добавяйки логика преди или след изпълнението.
Приложения:
- Логване
- Проверка на достъп (автентикация/авторизация)
- Добавяне на метаданни
- Модифициране на поведението на методите
Пример в Python:
# Простата функция за декориране
def my_function():
return "Hello"
# Декоратор
def simple_decorator(func):
def wrapper():
print("Преди извикването на функцията")
result = func()
print("След извикването на функцията")
return result
return wrapper
# Използване на декоратора
@simple_decorator
def decorated_function():
return "World"
# Викаме декорирана функция
# decorated_function() ще изведе:
# Преди извикването на функцията
# След извикването на функцията
# и ще върне "World"