Курс 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. Разделение строк в Python
  2. Генераторы в Python
  3. Работа с часовыми поясами в Python
  4. Модуль functools в Python
  5. Работа с модулем bisect
  6. Пространство имен в Python
  7. Логирование с Logzero: ротация файла
  8. Работа с комплексными числами
  9. Метод __int__ в Python
  10. Преобразование Excel в PDF с Spire.XLS
  11. Работа с enumerate()
  12. Исправление ошибки NameError
  13. Именованные аргументы в Python
  14. Преобразование документов в PDF с помощью Spire.Office
  15. Вложенные функции в Python
  16. Оператор assert в Python
  17. Оптимизация поиска в словарях
  18. Docstring в Python
  19. Множества и frozenset
  20. Работа с парами ключ-значение
  21. Numpy: использование Ellipsis
  22. Модуль itertools: комбинации и перестановки
  23. Кортеж в Python: создание, доступ, изменение
  24. Преобразование PowerPoint в PDF.
  25. Подписка на Kaspersky Team
  26. Оператор морж в Python 3.8
  27. Функция reduce() из модуля functools
  28. Преобразование вложенного списка
  29. Скрытие вывода данных
  30. Namedtuple в Python
  31. Работа со словарями
  32. Работа с рекламными данными в Pandas
  33. Тестирование времени с Freezegun
  34. Декораторы с аргументами в Python
  35. Классы данных в Python
  36. Defaultdict в Python
  37. Применение функции к списку
  38. Создание словарей с defaultdict()
  39. Выключение компьютера с помощью Python
  40. Регистрация на хакатоне
  41. Оператор Walrus: правильное использование
  42. Определение локальных переменных в Python
  43. Получение текущей даты и времени с помощью datetime
  44. Python Поверхностное Копирование
  45. Работа с часовыми поясами в Python.
  46. Работа с collections в Python

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