Курс 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. Создание виртуальной среды
  2. Асинхронное выполнение задач в процессах
  3. Библиотека sh: использование команд bash в Python
  4. Множественное наследование в Python
  5. Работа с множествами в Python
  6. Передача аргументов в Python
  7. Функция findall() для поиска вхождений строки
  8. Генераторы в Python
  9. Работа с географическими данными в Python
  10. Преобразование символов в нижний регистр
  11. Модуль os: работа с файлами и папками
  12. Конвертация изображений в PDF
  13. Транспонирование 2D-массива с помощью zip
  14. Конкатенация строк с помощью join()
  15. Операторы Splat и splatty-splat
  16. Работа с JSON в Python
  17. Работа с пакетами
  18. Создание словарей с defaultdict
  19. Разработка игры Pong с turtle
  20. Метод pop() списка
  21. Объединение словарей в Python
  22. Введение в Python
  23. Изменение регистра данных
  24. Комментарии в Python
  25. Логические операторы в Python
  26. Декоратор защиты анонимных пользователей
  27. Создание .exe файла с pyinstaller
  28. Запрос пароля с помощью getpass
  29. Обмен данными с asyncio.Queue
  30. Переопределение метода __pow__
  31. ROT13 Шифр Цезаря в Python
  32. Генераторы в Python
  33. Аннотации типов в Python
  34. Основы работы со списками
  35. Разница между датами
  36. Моржовый оператор в Python 3.8
  37. Метод split() для разделения строк
  38. Избегайте пустого списка
  39. Принципы программирования
  40. Добавление вложенных списков
  41. Хранение данных
  42. Объединение Python и Shell
  43. Поиск уникальных и повторяющихся элементов
  44. Codecademy в Telegram
  45. Функция reduce() в Python
  46. Многострочные комментарии в Python

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