Курс Python → Декоратор проверки активности

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

Для примера, давайте рассмотрим ситуацию, когда пользователь должен иметь определенное количество очков активности, чтобы иметь возможность оставить отзыв на блоге или в магазине. Мы можем использовать декоратор для проверки этого условия перед выполнением функции написания отзыва. Если у пользователя не хватает активности, мы можем предотвратить выполнение функции и выдать соответствующее сообщение.


def check_activity(func):
    def wrapper(user_activity):
        if user_activity >= 10:
            return func(user_activity)
        else:
            return "У вас недостаточно активности для написания отзыва."
    return wrapper

@check_activity
def write_review(user_activity):
    return "Отзыв успешно оставлен."

user_activity = 12
print(write_review(user_activity))  # Отзыв успешно оставлен.

user_activity = 8
print(write_review(user_activity))  # У вас недостаточно активности для написания отзыва.

В данном примере мы создали декоратор check_activity, который проверяет, что пользователь имеет более 10 баллов активности перед выполнением функции write_review. Если условие не выполняется, выводится соответствующее сообщение. При передаче значения активности 12 функция успешно выполняется, а при передаче значения 8 она не выполняется.

Таким образом, использование кастомной функциональности с помощью декораторов в Python позволяет легко добавлять дополнительные проверки и настройки к функциям, что делает код более гибким и удобным для поддержки и расширения.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Обмен данными с asyncio.Queue
  2. Сортировка с помощью параметра key
  3. Возвращение нескольких значений
  4. Присвоение значений переменным в Python
  5. Поиск уникальных и повторяющихся элементов
  6. Применение промокода в Много лосося
  7. Функция reversed() в Python
  8. Итерация по копии коллекции
  9. Доступ к локальным переменным
  10. Переворот строки с использованием цикла
  11. Инверсия списка и строки в Python
  12. Переворот списка в Python
  13. Замыкания в Python
  14. Область видимости переменных
  15. Именованные срезы в Python
  16. Ускорение кода с помощью векторизации
  17. Область видимости переменных
  18. Добавление цвета в консоли
  19. Срез списка в Python
  20. Выбор редактора кода.
  21. Проверка дубликатов в Python
  22. Методы и функции в Python
  23. Цикл for в Python
  24. Измерение времени выполнения
  25. Порядок и длина множеств в Python
  26. Фильтрация последовательности
  27. Хранение данных
  28. Получение значений из словарей
  29. Загрузка постов Instagram
  30. Параллельные вычисления в Python
  31. Эффективная конкатенация строк с использованием join()
  32. Работа с типами данных в Python с помощью pydantic.
  33. Закрытие файла в Python
  34. Docstring в Python
  35. Запуск Python из интерпретатора
  36. Печать месячного календаря
  37. Генераторы словарей и множеств
  38. Транспонирование 2D-массива с помощью zip
  39. Исправление ошибки NameError
  40. Управление асинхронными задачами на Python.
  41. Удаление falsy-значений из списка с помощью filter
  42. Antigravity модуль
  43. Область видимости переменных
  44. Декораторы в Python
  45. Работа с исключениями в Python
  46. Python UserString — создание подклассов строк
  47. Безопасный доступ к значениям словаря
  48. Flask — веб-фреймворк Python
  49. Функциональное программирование.

Marketello читают маркетологи из крутых компаний