Курс 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. Функция eval() в Python
  4. Комментарии в Python
  5. Проверка окончания строки с помощью str.endswith()
  6. Удаление символа из строки
  7. Копирование и вставка текста в Python
  8. Строки в Python: апострофы и кавычки
  9. F-строки в Python 3.8
  10. Многострочные комментарии в Python
  11. Преобразование в float
  12. Разделение списка на гнппы
  13. Генераторы в Python
  14. Python: Splat-оператор и splatty-splat
  15. Печать в одной строке
  16. capitalize() — изменение регистра первого символа строки
  17. Форматирование строк с помощью f-строк
  18. Декораторы в Python
  19. Метод __irshift__ для побитового сдвига вправо
  20. Генератор списка в Python
  21. Функция map() и ленивая оценка
  22. Освоение Python
  23. Работа с байтовыми строками в Python
  24. Отрицательные индексы списков в Python
  25. Открытие и редактирование скриптов Python
  26. Инверсия списков и строк в Python
  27. Методы __repr__ и __str__ в Python
  28. Работа с модулем random
  29. Проверка версии Python
  30. Хешируемые ключи в Python
  31. Синхронизация потоков с time.sleep()
  32. Фильтрация списка от «ложных» значений
  33. Улучшение читаемости кода в Python
  34. Модуль pprint
  35. Контекстный менеджер в Python
  36. Изменение элемента списка
  37. Преобразование документов в PDF с помощью Spire.Office
  38. Модуль pprint: улучшение вывода данных
  39. Форматирование строк в Python
  40. Удаление эмодзи с помощью pandas
  41. Бесконечная проверка в Python
  42. Вывод баннеров
  43. Расчет времени выполнения программы
  44. Установка и использование модуля Wikipedia

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