Курс 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. Итерация по итерируемым объектам
  2. Просмотр внешнего файла в Python
  3. Работа с WindowsPath()
  4. Возврат нескольких значений
  5. Работа с атрибутом dict
  6. Функция zip() в Python
  7. Лямбда-функции в Python
  8. Декораторы в Python
  9. Использование подчеркивания в REPL
  10. Оператор морж в Python 3.8
  11. Создание новых функций с помощью functools.partial
  12. Оператор Walrus в Python
  13. Парсинг статей с Newspaper3k
  14. Обработка исключений в Python 3
  15. Чтение бинарного файла в Python.
  16. Поиск шаблона в строке
  17. Обновление и получение данных в SQLite
  18. Работа с областями видимости переменных
  19. Автоматизация действий с Pyautogui
  20. Измерение времени выполнения
  21. Python itertools combinations() — группировка элементов
  22. Выход из профиля в Django
  23. Генерация случайных чисел в Python
  24. Python 3.12: переиспользование кавычек
  25. Работа с функцией next() в Python
  26. Создание и операции с дробями
  27. Ограничение итераций в Python
  28. Проверка вхождения подстроки
  29. Проверка надежности пароля на Python
  30. Преобразование кортежа в словарь.
  31. Манипуляция формой массива в Numpy
  32. Склеивание строк через метод join()
  33. Мощь вложенных функций в Python
  34. Работа с JSON в Python
  35. Глобальные переменные в Python
  36. Метод join() для объединения элементов в строку.
  37. F-строки в Python 3.8
  38. Реализация метода __abs__ в Python
  39. Установка и использование модуля Wikipedia
  40. Обновление ключей в Python
  41. Работа с argparse
  42. Генерация UUID в Python
  43. Модуль xkcd: добавление юмора в Python
  44. Сортировка с помощью key
  45. Избегание циклических зависимостей классов в Python

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