Menu
Coddy logo textTech

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

Часть раздела Object Oriented Programming путешествия по 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)

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

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

Шпаргалка

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

Базовая структура декоратора:

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

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

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

Синтаксис @my_decorator эквивалентен:

say_hello = my_decorator(say_hello)

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

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

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

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

Все уроки раздела Object Oriented Programming