Курс 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. Работа с CSV файлами в Python
  2. Фильтрация списка от «ложных» значений
  3. Метод pop() списка
  4. Вызов функций по строке в Python.
  5. Работа с кортежами в Python
  6. Объединение списков в Python
  7. Метод remove() для удаления элемента из списка
  8. Путь к интерпретатору Python
  9. Вывод символов строки в Python
  10. Метод enumerate() в Python
  11. Метод split() для разделения строк
  12. Активация Matplotlib в Jupyter
  13. Преобразование в float
  14. Операторы Splat и splatty-splat
  15. Генераторы списков
  16. Оператор += в Python
  17. Итераторы с потерямиZIP
  18. Доступ к локальным переменным
  19. Оператор break в Python
  20. TON Smart Challenge #2: участие и подготовка
  21. Эффективная конкатенация строк в Python
  22. Список переменных в Python
  23. Определение имен функций
  24. Метод join() для объединения элементов
  25. Измерение времени выполнения кода в Python
  26. Изменения в обработке логических значений
  27. Python Enumerate
  28. Метод join() для объединения элементов в строку.
  29. Дефолтные параметры в Python
  30. Генерация случайных чисел в Python
  31. Хранение переменных в Python.
  32. split() без разделителя
  33. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  34. Руководство по библиотеке pydantic
  35. Concrete Paths в Python
  36. Progress с библиотекой tqdm
  37. Функция reduce() в Python
  38. Функция sleep() в Python
  39. Добавление элементов в список: append() vs extend()
  40. Форматирование данных с помощью pprint
  41. Преобразование регистра символов
  42. Печать календаря в Python
  43. Константы в модуле cmath

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