def __call__(self, *args, **kwargs):
    return self.func(self.parent_obj, *args, **kwargs)

def string(self, *args, **kwargs):
    return str(self(*args, **kwargs))


class Test(object):

    def __init__(self, value):
        self._value = value

@deco
def plus(self, n):
    return self._value + n
Accessing self in a function attribute