Возникает вопрос о Наследовать docstrings в наследовании класса Python, но ответы там касаются метода docstrings.
Мой вопрос заключается в том, как наследовать docstring родительского класса как атрибут __doc__
. Usecase заключается в том, что Django rest framework создает хорошую документацию в html-версии вашего API на основе docstrings ваших классов. Но при наследовании базового класса (с docstring) в классе без docstring API не показывает docstring.
Вполне возможно, что sphinx и другие инструменты делают правильные вещи и обрабатывают наследование docstring для меня, но django rest framework смотрит на (пустой) атрибут .__doc__
.
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"
Я пробовал что-то вроде super(SubClassWithoutDocstring, self).__doc__
, но это также дало мне None
.