Sobes.tech
Back to questions
Junior — Middle
51

Можешь привести примеры использования декораторов в языке Python?

Companies where asked
Лига Цифровой ЭкономикиЛига Цифровой Экономики
БилайнБилайн

Answer from AI

sobes.tech AI

Декораторы в Python применяются для изменения или расширения поведения функций или методов без изменения их кода. Примеры использования:

  1. Логирование вызовов функции:
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("Мир")
  1. Проверка прав доступа:
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} удалён")
  1. Кэширование результатов:
from functools import lru_cache

@lru_cache(maxsize=32)
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

Декораторы позволяют писать более чистый и повторно используемый код.