Back to questions
Лига Цифровой Экономики
Билайн
Junior — Middle
51
Можешь привести примеры использования декораторов в языке Python?
Companies where asked
Answer from AI
sobes.tech AI
Декораторы в Python применяются для изменения или расширения поведения функций или методов без изменения их кода. Примеры использования:
- Логирование вызовов функции:
def log_decorator(func):
def wrapper(*args, **kwargs):
print(f"Вызов функции {func.__name__}")
return func(*args, **kwargs)
return wrapper
@log_decorator
def say_hello(name):
print(f"Привет, {name}!")
say_hello("Мир")
- Проверка прав доступа:
def requires_admin(func):
def wrapper(user, *args, **kwargs):
if not user.is_admin:
raise PermissionError("Доступ запрещён")
return func(user, *args, **kwargs)
return wrapper
@requires_admin
def delete_user(user, user_id):
print(f"Пользователь {user_id} удалён")
- Кэширование результатов:
from functools import lru_cache
@lru_cache(maxsize=32)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
Декораторы позволяют писать более чистый и повторно используемый код.