Курс 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. Очистка данных с помощью pandas
  2. Оператор walrus в Python
  3. Antigravity модуль
  4. Срез в Python
  5. Импорт модуля из другого каталога
  6. Цикл for с enumerate() в Python
  7. Оператор Walrus в Python 3.8
  8. Упрощение работы с JSON-данными в Python
  9. Преобразование строк в числа в Python
  10. Повторение и перенос строки
  11. Работа с необработанными строками
  12. Метод join() для объединения строк
  13. Разделение строк методом split()
  14. Функция count() в Python
  15. Комментарии в Python.
  16. Инициализация структур данных
  17. Пропуск строк в файле с itertools
  18. Форматирование данных с помощью pprint
  19. Любовь к Python
  20. Перезагрузка оператора в Python
  21. Добавление цвета в консоли
  22. Утечки переменных цикла в Python 3.x
  23. Применение функции map() с лямбда-функциями
  24. Генерация случайных чисел в Python
  25. Транспонирование 2D-массива с помощью zip
  26. Основные операции с Numpy
  27. Лямбда-функции в Python
  28. Округление чисел с помощью round
  29. Ускорение выполнения кода в Python
  30. Работа с zip()
  31. Работа с Enum в Python3.
  32. Создание графиков в терминале
  33. Функции map, filter и reduce
  34. Подсказки при вводе данных в Python
  35. Работа с очередями в Python
  36. Форматирование кода на Python
  37. Создание циклической ссылки
  38. Метод join для объединения строк
  39. Вывод символов строки в Python
  40. Работа с контекстными переменными
  41. Сортировка данных в Python
  42. Избегайте пустого списка
  43. Обновление шаблона base.html
  44. Работа с collections.Counter
  45. Удаление ключей из словаря
  46. Получение размера объекта с sys.getsizeof()
  47. Красивый вывод списка
  48. Библиотека Chartify: руководство

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