Как украсить все функции класса, не вводя его снова и снова для каждого метода? [Дубликат]

На этот вопрос уже есть ответ:

Присоединение декоратора ко всем функциям в классе 4 ответа

Пусть в моем классе много методов, и я хочу применить свой декоратор к каждому из них, позже, когда я добавлю новые методы, я хочу применить тот же декоратор, но я не хочу писать @mydecorator над объявлением метода все время

Если я загляну в__call__ это правильный путь?

ВАЖНЫЙ приведенный ниже пример, похоже, решает проблему, отличную от первоначального вопроса.

РЕДАКТИРОВАТЬ Я хотел бы показать это, что является аналогичным решением моей проблемы для любого, кто найдет этот вопрос позже, используя миксин, как упомянуто в комментариях.

class WrapinMixin(object):
    def __call__(self, hey, you, *args):
        print 'entering', hey, you, repr(args)
        try:
            ret = getattr(self, hey)(you, *args)
            return ret
        except:
            ret = str(e)
            raise
        finally:
            print 'leaving', hey, repr(ret)

Тогда ты можешь в другом

class Wrapmymethodsaround(WrapinMixin): 
    def __call__:
         return super(Wrapmymethodsaround, self).__call__(hey, you, *args)

Ответы на вопрос(5)

Ваш ответ на вопрос