问题:将javadoc用于Python文档[关闭]
我目前从Python开始,我有很强的PHP背景,在PHP中,我习惯于javadoc
用作文档模板。
我想知道它是否在Python文档中javadoc
占有一席之地docstring
。这里有哪些既定的公约和/或官方指南?
例如,类似这样的内容太复杂,无法适应Python的思维方式,还是我应该尽量简洁一些?
"""
replaces template place holder with values
@param string timestamp formatted date to display
@param string priority priority number
@param string priority_name priority name
@param string message message to display
@return string formatted string
"""
而且,如果我有点过于详尽,我应该改用类似的东西(大多数文档都无法通过该__doc__
方法打印)吗?
# replaces template place holder with values
#
# @param string timestamp formatted date to display
# @param string priority priority number
# @param string priority_name priority name
# @param string message message to display
#
# @return string formatted string
def format(self, timestamp = '', priority = '', priority_name = '', message = ''):
"""
replaces template place holder with values
"""
values = {'%timestamp%' : timestamp,
'%priorityName%' : priority_name,
'%priority%' : priority,
'%message%' : message}
return self.__pattern.format(**values)
回答 0
看一下reStructuredText(也称为“ reST”)格式,它是纯文本/文档字符串标记格式,可能是Python世界中最流行的格式。而且,您当然应该看一下Sphinx,它是一种从reStructuredText生成文档的工具(例如用于Python文档本身)。Sphinx允许从代码中的文档字符串中提取文档(请参见sphinx.ext.autodoc),并按照某些约定识别reST 字段列表。这可能已经成为(或正在成为)最流行的方法。
您的示例如下所示:
"""Replaces template placeholder with values.
:param timestamp: formatted date to display
:param priority: priority number
:param priority_name: priority name
:param message: message to display
:returns: formatted string
"""
或扩展了类型信息:
"""Replaces template placeholder with values.
:param timestamp: formatted date to display
:type timestamp: str or unicode
:param priority: priority number
:type priority: str or unicode
:param priority_name: priority name
:type priority_name: str or unicode
:param message: message to display
:type message: str or unicode
:returns: formatted string
:rtype: str or unicode
"""
回答 1
遵循Google Python样式指南。请注意,Sphinx还可以使用Napolean扩展来解析此格式,该扩展将与Sphinx 1.3打包在一起(这也与PEP257兼容):
def func(arg1, arg2):
"""Summary line.
Extended description of function.
Args:
arg1 (int): Description of arg1
arg2 (str): Description of arg2
Returns:
bool: Description of return value
"""
return True
示例取自上面链接的Napolean文档。
这里是有关所有类型的文档字符串的综合示例。
回答 2
Python增强建议257中描述了python文档字符串的标准。
适用于您的方法的注释应类似于
def format(...):
"""Return timestamp string with place holders replaced with values.
Keyword arguments:
timestamp -- the format string (default '')
priority -- priority number (default '')
priority_name -- priority name (default '')
message -- message to display (default '')
"""
回答 3
看一下Documenting Python,这是“针对Python文档的作者和潜在作者的页面”。
简而言之,reStructuredText是用于记录Python本身的东西。开发人员指南包含reST入门,样式指南以及有关编写良好文档的一般建议。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。