Я пытаюсь наследовать классы в Python. Я бы хотел, чтобы у каждого класса и унаследованного класса были хорошие строки документации. Поэтому я думаю, что для унаследованного класса я бы хотел:
- наследовать строку документации базового класса
- возможно, добавить соответствующую дополнительную документацию в строку документации
Есть ли какой-либо (возможно, элегантный или питонический) способ выполнения такого рода манипуляций со строкой документации в ситуации наследования классов? Как насчет множественного наследования?
python
inheritance
documentation
Крейг МакКуин
источник
источник
inspect.getdoc
будет искать в дереве наследования, пока не найдет строку документации.Ответы:
Ты не единственный! Некоторое
comp.lang.python
время назад об этом шла дискуссия , и был создан рецепт. Посмотрите здесь .источник
Вы можете легко объединить строки документации:
Однако это бесполезно. Большинство инструментов создания документации ( включая Sphinx и Epydoc ) уже извлекают родительскую строку документации, в том числе для методов. Так что вам не нужно ничего делать.
источник
Не особо элегантно, но просто и прямо:
Сейчас:
источник
Init docstring
и для, есть ли способ сделать это в определенииY
? Единственный способ, которым я смог это сделать, - это__init__.__doc__ = X.__init__.__doc__ + " Also another param"
следовать__init__
определению,Y
но это, похоже, нарушает форматирование, вызывая лишние пробелы.Смешанный стиль, который может сохранить как унаследованный синтаксис строки документации, так и предпочтительный порядок, может быть:
С тем же результатом, что и у Алекса:
Тонкий лед: игра со строкой документации может сделать ваш модуль непригодным для использования
python -OO
, ожидайте некоторых:источник
Я написал custom_inherit, чтобы предоставить несколько простых и легких инструментов для обработки наследования строк документации.
Он также поставляется с некоторыми хорошими стилями по умолчанию для слияния различных типов строк документации (например, строк документации в формате Numpy, Google и reST). Вы также можете очень легко создать свой собственный стиль.
Перекрывающиеся разделы строки документации будут относиться к дочернему разделу, в противном случае они будут объединены вместе с хорошим форматированием.
источник