Курс 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. Переопределение унарных операторов
  3. Создание списка через итерацию
  4. Оптимизация памяти в Python
  5. Генераторы данных
  6. Python OrderedDict и fromkeys() — работа с словарями
  7. JMESPath в Python
  8. Объединение словарей в Python
  9. Обход дочерних элементов BeautifulSoup
  10. Пространство имен в Python
  11. Аннотации типов в Python
  12. Итерации в Python
  13. Запрос пароля с помощью getpass
  14. Изменение объектов в Python
  15. Вычисление разности множеств в Python
  16. Создание уникального множества
  17. Python и Монти Пайтон
  18. Создание Radio кнопок в tkinter
  19. Управление виртуальными средами в Python
  20. Фильтрация элементов с помощью islice
  21. Множественное наследование в Python
  22. Сортировка и обратный порядок
  23. Разделение строки в Python
  24. Импорт модулей в Python 3.12
  25. Генераторы в Python
  26. Работа с утверждениями в Python
  27. Глубокое копирование объектов
  28. Функции map, filter и reduce
  29. Работа с буфером обмена на Python
  30. Переопределение метода xor в Python
  31. Работа с рекламными данными в Pandas
  32. Срезы в Python
  33. Множественное присваивание в Python
  34. Возврат нескольких значений
  35. ROT13 Шифр Цезаря в Python
  36. Обезопасьте ввод данных
  37. Метод enumerate() в Python
  38. Удаление знаков препинания в Python
  39. Обработка исключений в Python
  40. Хеши в Python
  41. Конкатенация строковых литералов
  42. Оператор space-invader
  43. Вывод баннеров
  44. Функциональное программирование.
  45. Бинарный поиск
  46. Классы данных в Python
  47. Работа со словарями

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