I have a descriptor that turns a method into a property on the class level:
class classproperty(object):
def __init__(self, getter):
self.getter
If you jump through a few hoops, it can be retrieved, but not directly through the property itself like A.test.__doc__
because of the way descriptors work.
class classproperty(object):
def __init__(self, getter):
self.getter = getter
def __get__(self, instance, owner):
if instance is None: # instance attribute accessed on class?
return self
return self.getter(owner)
class A(object):
@classproperty
def test(cls):
"test's docstring"
return "Test"
def docstring(cls, methodname):
return getattr(cls, methodname).getter.__doc__
print docstring(A, 'test') # -> test's docstring