Все декораторы, которые мы писали до сих пор, были функциями с вложенными функциями внутри. Но есть и другой способ - оформить декоратор в виде класса, где __init__ принимает декорируемую функцию, а __call__ делает саму работу при вызове. Многим этот вариант кажется даже более наглядным, когда у декоратора много собственного состояния.