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("Мир")
Вывод будет:
До вызова функции
Привет, Мир!
После вызова функции
Такой подход полезен, когда нужно хранить состояние между вызовами или использовать дополнительные методы в декораторе.