Курс 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. Оформление кода по PEP 8
  2. Получение локальных переменных в Python
  3. Переворот списка в Python
  4. Создание новых функций через partial
  5. Работа с контекст-менеджером «with»
  6. Метод __imod__ для Python
  7. Структура данных словарь в Python
  8. Декораторы с аргументами
  9. Изучение объектов с помощью dir()
  10. Открытие и запись файлов
  11. Генераторы в Python
  12. Замена переменных в Python
  13. Создание копии итератора
  14. Конкатенация строк с помощью join()
  15. Установка и использование Telegram API в Python
  16. Замена атрибута в именованном кортеже
  17. Инверсия списка/строки в Python
  18. Работа с итераторами в Python
  19. Форматирование строк в Python
  20. Удаление файлов с shutil.os.remove()
  21. Преобразование данных в Python
  22. Лимиты на ресурсы Python
  23. Создание именованных кортежей в Python
  24. Область видимости переменных в Python
  25. Блок try-except-else
  26. Именованные кортежи в Python
  27. Удаление falsy-значений из списка с помощью filter
  28. Методы __repr__ и __str__ в Python
  29. Пустой оператор pass в Python
  30. TON Smart Challenge #2: участие и подготовка
  31. Сериализация данных в JSON с помощью json.dumps
  32. Python и Юникод: работа с цифрами
  33. Моржовый оператор в Python 3.8
  34. Работа с изображениями PIL
  35. Пересечение списков с использованием множеств
  36. Работа с итераторами в Python
  37. Документация функции help() в Python
  38. Присвоение значений переменным в Python
  39. Оптимизация создания строк
  40. JMESPath в Python
  41. Создание и удаление объектов
  42. Установка и использование pyshorteners
  43. Сортировка HTML по CSS-селектору
  44. Оператор walrus в Python
  45. Удаление специальных символов
  46. Скрытие вывода данных

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