Sobes.tech
Назад к вопросам
Middle+
2

Расскажи про декораторы в Python

Компании, где спрашивали
devar

Ответ от нейросети

sobes.tech AI

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

Они часто используются для:

  • Логирования вызовов функций
  • Проверки прав доступа
  • Кэширования результатов
  • Измерения времени выполнения

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

def decorator(func):
    def wrapper(*args, **kwargs):
        print(f"Вызов функции {func.__name__}")
        result = func(*args, **kwargs)
        print(f"Функция {func.__name__} завершена")
        return result
    return wrapper

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

say_hello("Мир")

Здесь @decorator — синтаксический сахар для say_hello = decorator(say_hello).

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