Decorators Usage
Урок 5 из 12 курса Декораторы в Python на Coddy.
В Python декоратор — это функция, которая принимает другую функцию в качестве входных данных и расширяет поведение этой функции без явного изменения её кода. Декораторы — это мощный способ изменять или улучшать поведение функций гибким и многократно используемым способом.
Вот пример простой функции-декоратора:
def my_decorator(func):
def wrapper():
print("Before the function is called.")
func()
print("After the function is called.")
return wrapperВ этом примере функция my_decorator принимает другую функцию func в качестве входных данных и возвращает новую функцию под названием wrapper.
Функция wrapper добавляет определенное поведение до и после вызова функции func.
Задание
ЛегкоНапишите функцию-декоратор с именем debug, которая принимает функцию func в качестве входных данных и возвращает новую функцию, которая выводит имя func и возвращаемое значение func при каждом ее вызове.
Чтобы получить имя
func, используйтеfunc.__name__.
Вот пример использования декоратора debug:
def hello():
return "Hello"
debug_hello = debug(hello)
debug_hello()В этом примере мы используем декоратор debug, чтобы обернуть функцию hello и создать новую функцию с именем debug_hello. Когда мы вызываем debug_hello(), декоратор выведет:
Calling hello
hello returned: HelloВы можете предположить, что все функции, передаваемые в
debug, являются функциями без аргументов.
Попробуйте сами
Все уроки раздела Декораторы в Python
Потренируйтесь самостоятельно: Онлайн-компилятор Python