Sobes.tech
Junior — Middle
65

Можно ли реализовать декоратор в виде класса в языке программирования?

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

sobes.tech AI

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

Пример класса-декоратора:

class DecoratorClass:
    def __init__(self, func):
        self.func = func

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

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

say_hello("Мир")

Вывод будет:

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

Такой подход полезен, когда нужно хранить состояние между вызовами или использовать дополнительные методы в декораторе.