import functools class descriptor(object): """Simple descriptor.""" def __init__(self, func): self.func = func def __get__(self, obj, cls=None): @functools.wraps(self.func) def newfunc(*args, **kwargs): return self.func(obj, *args, **kwargs) return newfunc class Test(object): def method(self): """Doc >>> Test().method() 1 """ return 1 @descriptor def methoddescriptor(self): """Doc >>> Test().methoddescriptor() 1 """ return 1 if __name__ == '__main__': import doctest numfailures, numtests = doctest.testmod() if numtests != 2: print "Expected 2 doctests, but only found %d" % numtests