Я видел несколько разных стилей написания строк документации на Python, есть ли официальный или "согласованный" стиль?
python
coding-style
documentation
docstring
Ной Макилрейт
источник
источник
epydoc
,doxygen
,sphinx
? Есть ли у кого-нибудь статистика, один из них собирается заменить другие, в таких случаях слишком много вариантов может повредить.def foo(self, other):\n\t"""\n\t(blank line)\n\t:param other: \n\t:return:\n\t"""
Ответы:
Форматы
Строки документации Python могут быть написаны в нескольких форматах, как показано в других сообщениях. Однако формат строки документа Sphinx по умолчанию не был упомянут и основан на reStructuredText (reST) . Вы можете получить информацию об основных форматах в этом посте .
Обратите внимание, что ПКП 287 рекомендует reST
Ниже приведены основные используемые форматы для строк документации.
- эпитекст
Исторически стиль, похожий на javadoc, был распространен, поэтому он использовался в качестве основы для Epydoc (с так называемым
Epytext
форматом) для создания документации.Пример:
- остаток
В настоящее время, вероятно, более распространенным форматом является формат reStructuredText (reST), который используется Sphinx для создания документации. Примечание: он используется по умолчанию в JetBrains PyCharm (введите тройные кавычки после определения метода и нажмите Enter). Он также используется по умолчанию в качестве выходного формата в Pyment.
Пример:
- Google
У Google есть собственный формат, который часто используется. Это также может быть интерпретировано Сфинксом (то есть с использованием плагина Napoleon ).
Пример:
Еще больше примеров
- Нумпидок
Обратите внимание, что Numpy рекомендует следовать своему собственному numpydoc на основе формата Google и может использоваться Sphinx.
Преобразование / Генерация
Можно использовать инструмент, такой как Pyment, для автоматической генерации строк документации в проект Python, еще не документированный, или для преобразования существующих строк документации (можно смешивать несколько форматов) из формата в другой.
Примечание: примеры взяты из документации Pyment
источник
Руководство по стилю Google содержит отличное руководство по стилю Python. Он включает в себя соглашения для удобочитаемого синтаксиса документации, который предлагает лучшее руководство, чем PEP-257. Например:
Мне нравится расширять это, чтобы включить информацию о типе в аргументы, как описано в этом руководстве по документации Sphinx . Например:
источник
Соглашения о документах содержатся в PEP-257 с гораздо более подробной информацией, чем в PEP-8.
Тем не менее, строки документации кажутся гораздо более личными, чем другие области кода. У разных проектов будет свой стандарт.
Я склонен всегда включать строки документов, потому что они демонстрируют, как использовать функцию и что она делает очень быстро.
Я предпочитаю, чтобы все было согласованно, независимо от длины строки. Мне нравится, как кодировать выглядит, когда отступы и интервалы согласованы. Это означает, что я использую:
Над:
И, как правило, не комментируйте первую строку в длинных строках документации:
То есть, я считаю, что строки документации, которые начинаются таким образом, являются грязными.
источник
"""Return the squared result"""
а не"""Returns the squared result"""
. Хотя лично я пишу свои, как Тим, как здесь, несмотря на то, что говорит PEP.Как очевидно, никто не упомянул об этом: вы также можете использовать Numpy Docstring Standard . Широко используется в научном сообществе.
Расширение наполеоновских сфинксов для анализа строк документов в стиле Google (рекомендуется в ответе @Nathan) также поддерживает строку документов в стиле Numpy и дает краткое сравнение обоих.
И последний базовый пример, чтобы дать представление о том, как это выглядит:
источник
PEP-8 является официальным стандартом кодирования Python. Он содержит раздел о строках документации, который ссылается на PEP-257 - полную спецификацию для строк документации.
источник
Это Питон; все идет . Подумайте, как опубликовать вашу документацию . Строки документов невидимы, кроме читателей вашего исходного кода.
Людям очень нравится просматривать и искать документацию в Интернете. Для этого используйте инструмент документации Sphinx . Это де-факто стандарт для документирования проектов Python. Продукт красивый - взгляните на https://python-guide.readthedocs.org/en/latest/ . Сайт Read the Docs будет размещать ваши документы бесплатно.
источник
ipython
для тест-драйва библиотеку, и это упрощает чтение строк документации - все, что мне нужно набрать, -your_module.some_method_im_curious_about?
и я получаю все хорошие распечатки, включая строку документации.help
функцию в документированной функции / методе / классе (и это можно сделать, даже если у вас есть доступ только к скомпилированному модулю). Лично я думаю, что следует помнить об этом при выборе соглашения docstring (то есть, что он предназначен для чтения как есть).Я предлагаю использовать Python-программу Владимира Келешева pep257, чтобы проверить ваши строки документов на соответствие PEP-257 и Numpy Docstring Standard для описания параметров, возвратов и т. Д.
pep257 сообщит о расхождении, которое вы производите от стандарта, и называется pylint и pep8.
источник
pydocstyle --select=D4 tmp.py
проверки ряда проблем с содержимым документации, включая именование разделов.