Menu
Coddy logo textTech

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.

challenge icon

Задание

Легко

Напишите функцию-декоратор с именем 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