Курс 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. Измерение времени выполнения с помощью time
  4. Форматирование строк в Python
  5. Python: отсутствие точек с запятыми
  6. Поток данных в Python
  7. Многоточие в Python
  8. Создание веб-приложения с Flask
  9. Ускорение кода с помощью векторизации
  10. Оценка выражений генератора в Python
  11. Функции с необязательными аргументами
  12. Мониторинг работы программы Py-spy
  13. Переворот списка в Python
  14. Итерации в Python
  15. Автоматизация скриптов на AWS Lightsail.
  16. Создание детектора плагиата
  17. Генерация случайных чисел в Python
  18. Библиотека Rich: форматирование текста
  19. Вызов внешних программ в Python с помощью sh
  20. Мониторинг памяти с Pympler
  21. Генераторные функции в Python
  22. Преобразование вложенного списка
  23. Функции map, filter, reduce
  24. Оператор is в Python
  25. Метод ne для сравнения объектов
  26. Преобразование многоуровневого словаря
  27. Хранение переменных в Python.
  28. Обмен значений переменных в Python
  29. Работа с часовыми поясами в Python.
  30. Замыкания в Python
  31. Округление дробей в Python
  32. Извлечение чисел из текста
  33. Закрытие файла в Python
  34. Управление памятью в numpy.
  35. Генераторы в Python
  36. Работа с множествами в Python
  37. Python Enumerate
  38. Создание словарей и множеств в Python
  39. Сортировка в Python
  40. Избегайте ошибку FileNotFoundError
  41. Получение текущей директории
  42. Функция count() в Python
  43. Инициализация переменных
  44. Модуль Operator в Python
  45. Объединение кортежей в Python
  46. Типы возвращаемых значений в Python

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