Курс 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. Логирование с Logzero
  3. Методы __repr__ и __str__ в Python
  4. Python defaultdict добавление ключа
  5. Очистка данных с Pandas
  6. Работа с кортежами
  7. Нан-рефлексивность в Python
  8. Функция reduce() в Python
  9. Работа с многоуровневыми словарями в Python
  10. Печать списка с помощью метода join
  11. Экранирование символов в Python
  12. Методы работы со списками
  13. Описание скриптов в README
  14. Функция zip() в Python
  15. Создание словаря в Python
  16. Обновление множества в Python
  17. Роль object и type в Python
  18. Отладка утечек памяти в Python
  19. Создание объекта времени
  20. Декораторы в Python
  21. Работа с IP-адресами в Python
  22. Явный импорт в Python
  23. Работа с изображениями Pillow
  24. Разность множеств
  25. Разбиение строки в Python
  26. Применение функции map() в Python
  27. Логирование с Loguru
  28. Удаление файлов в Python
  29. Метод rsub в Python: расширение функциональности вычитания
  30. Работа с буфером обмена на Python
  31. Подробная информация о %pinfo
  32. Преобразование строки в число
  33. Создание генераторов
  34. Оптимизация памяти с __slots__
  35. Анализ текста на русском языке с помощью Pymystem3
  36. Анализ кода — Python
  37. Работа с JSON в Python
  38. Преобразование данных в Python
  39. Функция eval() в Python
  40. Проверка типа объекта в Python
  41. Строковое представление объектов
  42. Генерация случайных данных в NumPy
  43. Автоматизация скриптов на AWS Lightsail.
  44. Удаление дубликатов из списка
  45. Преобразование букв в нижний регистр
  46. Оператор «or» в Python
  47. Конвертация текстовых чисел с помощью Numerizer

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