Курс 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"
- Доступ к локальным переменным
- Декораторы для регистрации функций
- Тестирование функции сложения
- Установка и использование Telegram API в Python
- Работа со строками
- Работа с кортежами в Python
- Проверка однородности элементов списка
- Уникальные значения из списка
- Форматирование строк в Python
- Оптимизация гиперпараметров с Scikit Optimize
- Библиотека sh: использование команд bash в Python
- Создание новых функций через partial
- Списковое включение в Python
- Преобразование числа в восьмеричную строку
- Поиск шаблона в начале строки
- Установка и использование pyshorteners
- Модуль pprint: улучшение вывода данных
- Работа со стеком в Python
- Генераторы в Python
- Потоковый ввод в Python
- Работа с каталогами в Python
- Ускорение кода с помощью векторизации
- Курс по дообучению ChatGPT
- Основы работы со списками
- Хэш-функции в Python
- JSON-esque в Python
- Модуль functools в Python
- Colorama: окрашивание текста в Python
- Любовь к Python
- Экспорт функций в Python
- Python Enumerate
- Бесконечные списки в Python
- Обновление ключей в Python
- Регистрация на хакатоне
- Очистка данных в Python
- Перемещение и удаление файлов в Python
- Преобразование чисел в Python
- Функции классификации комплексных чисел
- Анонимные функции в Python
- Отладка в командной строке
- Проверка списка: any() и all()
- Метод setitem в Python
- Форматирование строк в Python
- Библиотека Emoji: использование смайлов в Python
- Установка User-Agent в Python















