Sobes.tech
Back to questions
Junior — Middle
61

Каким образом в Python создается и применяется паттерн декоратор?

Answer from AI

sobes.tech AI

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

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

def decorator(func):
    def wrapper(*args, **kwargs):
        print("До вызова функции")
        result = func(*args, **kwargs)
        print("После вызова функции")
        return result
    return wrapper

@decorator
def say_hello(name):
    print(f"Привет, {name}!")

say_hello("Мир")

Здесь @decorator — синтаксический сахар, эквивалентный say_hello = decorator(say_hello). При вызове say_hello сначала выполняется код до вызова исходной функции, затем сама функция, затем код после неё.

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