Sobes.tech
Back to questions
Junior — Middle
84

Объясните концепцию декораторов в Python и как они используються для изменения поведения функций.

Companies where asked
Цифрум

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("Мир")

Вывод будет:

До вызова функции
Привет, Мир!
После вызова функции

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