Курс 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. PATCH-запрос с библиотекой requests
  3. Блок else в Python
  4. Генерация случайных чисел в Python
  5. Метод getitem для доступа к элементам последовательности
  6. Генератор данных в Keras
  7. Принципы Zen Python
  8. Работа с рекламными данными в Pandas
  9. Разбиение строки в Python
  10. Функция reduce() в Python
  11. Подсчет часто встречающихся элементов
  12. Проверка файла .py на синтаксис.
  13. Получение пути к текущему скрипту с помощью os
  14. Объединение списков с помощью zip
  15. Основы работы с базами данных в Python
  16. Навыки Python: строки, типы данных
  17. Переопределение метода __rshift__
  18. Переопределение метода __pow__
  19. Генераторы в Python
  20. Транспонирование 2D-массива с помощью zip
  21. Оптимизация создания строк
  22. Роль запятой в Python
  23. Явный импорт переменных
  24. Печать в одной строке
  25. Сортировка в Python
  26. Вызов внешних программ в Python с помощью sh
  27. Итераторы в Python
  28. Область видимости переменных
  29. Список переменных в Python
  30. Метод сравнения объектов в Python
  31. Переопределение оператора % для объектов
  32. Декоратор Ajax required
  33. Методы split() и join() — Python строк.
  34. Потоковый ввод в Python
  35. Поиск частых элементов в списке
  36. Разработка Telegram-ботов
  37. Определение функций с необязательными аргументами
  38. Переопределение метода len
  39. Метод __int__ в Python
  40. Атрибуты массивов в Numpy
  41. Ключевое слово global в Python
  42. Просмотр файла в Jupyter Noteboo
  43. Непрерывная проверка в Python
  44. Модуль antigravity: генерация координат
  45. Объединение коллекций в Python
  46. Генераторы в Python

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