Menu
CoddyTech

Введение в декораторы

Часть раздела Объектно-ориентированное программирование путешествия по Python на Coddy. Урок 9 из 64.

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

Вот пример простого декоратора: 

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

Примените декоратор с помощью @:

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

Вызови декорированную функцию:

say_hello()

Вывод:

Before function runs
Hello!
After function runs

Декоратор @my_decorator эквивалентен записи:

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

say_hello = my_decorator(say_hello)

Но синтаксис @ гораздо чище и легче читается.

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

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Объектно-ориентированное программирование

Потренируйтесь самостоятельно: Онлайн-компилятор Python