Inherit a parent class docstring as __doc__ attribute

Posted by Reinout van Rees on Stack Overflow See other posts from Stack Overflow or by Reinout van Rees
Published on 2012-12-18T16:38:49Z Indexed on 2012/12/18 17:03 UTC
Read the original article Hit count: 374

There is a question about Inherit docstrings in Python class inheritance, but the answers there deal with method docstrings.

My question is how to inherit a docstring of a parent class as the __doc__ attribute. The usecase is that Django rest framework generates nice documentation in the html version of your API based on your view classes' docstrings. But when inheriting a base class (with a docstring) in a class without a docstring, the API doesn't show the docstring.

It might very well be that sphinx and other tools do the right thing and handle the docstring inheritance for me, but django rest framework looks at the (empty) .__doc__ attribute.

class ParentWithDocstring(object):
    """Parent docstring"""
    pass


class SubClassWithoutDoctring(ParentWithDocstring):
    pass


parent = ParentWithDocstring()
print parent.__doc__  # Prints "Parent docstring".
subclass = SubClassWithoutDoctring()
print subclass.__doc__  # Prints "None"

I've tried something like super(SubClassWithoutDocstring, self).__doc__, but that also only got me a None.

© Stack Overflow or respective owner

Related posts about python

Related posts about docstring