Что такое декораторы?

Декораторы (decorators) в Python - это мощный и гибкий механизм, который позволяет изменять поведение функций или методов без их изменения.

Декораторы позволяют вам:

  1. Расширять функциональность функций или методов.

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

  3. Организовывать код, делая его более читаемым и модульным.

Синтаксис декораторов в Python основан на использовании символа @, за которым следует имя декоратора перед определением функции или метода. Вот пример:

def my_decorator(func):
    def wrapper():
        print("Что-то происходит до вызова функции")
        func()
        print("Что-то происходит после вызова функции")
    return wrapper

@my_decorator
def say_hello():
    print("Привет!")

say_hello()

В этом примере my_decorator - это декоратор, который оборачивает функцию say_hello. При вызове say_hello(), сначала выполняются действия внутри декоратора my_decorator, затем вызывается функция say_hello, и после её выполнения снова выполняются действия внутри декоратора.

Python также предоставляет встроенные декораторы, такие как @staticmethod, @classmethod, @property, которые используются для определения статических методов, классовых методов и свойств соответственно.

Вы также можете создавать собственные декораторы, что позволяет вам определять кастомное поведение для ваших функций и методов.

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

Last updated