Python Декораторы и наследование

Помогите, парень. Не получается заставить декоратор работать с наследованием. Разбери это до самого простого маленького примера в моем рабочем пространстве. По-прежнему не могу заставить его работать.

class bar(object):
    def __init__(self):
        self.val = 4
    def setVal(self,x):
        self.val = x
    def decor(self, func):
        def increment(self, x):
            return func( self, x ) + self.val
        return increment

class foo(bar):
    def __init__(self):
        bar.__init__(self)
    @decor
    def add(self, x):
        return x

Упс, название "декор" не определено.

Хорошо, как насчет@bar.decor? TypeError: несвязанный метод "decor" должен вызываться с экземпляром бара в качестве первого аргумента (вместо этого получен экземпляр функции)

Хорошо как насчет@self.decor? Имя «Я» не определено.

Хорошо как насчет@foo.decor?! Название "foo" не определено.

AaaaAAaAaaaarrrrgggg ... Что я делаю не так?

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

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