Курс Python → Декораторы в Python

Декораторы в Python представляют собой специальный синтаксис, который позволяет нам изменять поведение функций или методов без изменения их исходного кода. Для написания собственного декоратора в Python, нам нужно определить функцию, которая будет являться декоратором, и применить ее к целевой функции с помощью символа @.


def my_decorator(func):
    def wrapper():
        print("Before function is called")
        func()
        print("After function is called")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()

В данном примере мы создали декоратор my_decorator, который выводит сообщения до и после вызова целевой функции say_hello. При использовании декоратора @my_decorator перед определением функции say_hello, мы расширили функциональность функции say_hello без изменения ее кода.

Декораторы могут принимать аргументы, что позволяет нам настраивать их поведение. Для передачи аргументов в декоратор, мы можем определить еще одну внутреннюю функцию, которая будет принимать эти аргументы и передавать их внутреннему декоратору.


def my_decorator_with_args(arg1, arg2):
    def decorator(func):
        def wrapper():
            print(f"Arguments passed to decorator: {arg1}, {arg2}")
            func()
        return wrapper
    return decorator

@my_decorator_with_args("arg1_value", "arg2_value")
def say_hello():
    print("Hello!")

say_hello()

В этом примере мы создали декоратор my_decorator_with_args, который принимает два аргумента и передает их внутреннему декоратору, который затем выводит их значения перед вызовом целевой функции say_hello. Таким образом, мы можем настраивать поведение декораторов в зависимости от переданных аргументов.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Конкатенация строк с методом join()
  2. Оператор морж в Python 3.8
  3. Счетчик в Python: most_common()
  4. Объединение Python и Shell
  5. Работа со словарями
  6. Перебор элементов списка в Python
  7. Нахождение пересечения множеств
  8. Возврат нескольких значений
  9. Настройка вывода в Numpy
  10. Списковое включение в Python
  11. Повторение элементов списков
  12. Управление импортом в Python
  13. Простой калькулятор Python
  14. Расширение информации об ошибке в Python
  15. Форматирование данных с pprint
  16. Преобразование числа в список цифр
  17. Работа с часовыми поясами в Python.
  18. Преобразование регистра строк
  19. Установка Python3.7 и PIP
  20. globals и locals
  21. Работа с контекст-менеджером «with»
  22. Проверка на истинность объектов в Python
  23. Установка и использование pyshorteners
  24. ROT13 Шифр Цезаря в Python
  25. Изменение переменной в Python: nonlocal
  26. Структура данных словарь в Python
  27. Изменение элемента списка
  28. Метод join для объединения строк
  29. Импорт в Python: список all
  30. Генераторы списков
  31. Оператор * в Python
  32. Переменные в Python: сокращение гласных
  33. Работа с классами данных
  34. Регулярные выражения: метод match
  35. Присвоение значений переменным в Python
  36. Получение текущей даты в Python
  37. Функция pow() — возвести число в степень
  38. Поиск наиболее частого элемента списке
  39. Ускорение выполнения кода в Python
  40. Создание множества в Python
  41. Работа с итераторами в Python
  42. Объединение словарей в Python
  43. Курс Data Scientist в медицине
  44. Область видимости переменных в Python
  45. Работа с IP-адресами в Python
  46. Цепные операции в Python

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