Sobes.tech
Back to questions
Junior — Middle
66

Опыт использования паттерна-декоратора в Python и его применения в реальных проектах

Answer from AI

sobes.tech AI

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

Пример: логирование вызовов функции.

import time

def timer(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        end = time.time()
        print(f"Время выполнения {func.__name__}: {end - start:.4f} секунд")
        return result
    return wrapper

@timer
def compute(x):
    return sum(i*i for i in range(x))

compute(100000)

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