【发布时间】:2015-10-08 15:24:40
【问题描述】:
我尝试使用具有活动性和描述性的函数名称,然后使用活动和描述性文本 (!) 对其进行记录。这会生成看起来冗余的代码。
python 中的简化(但不是那么不切实际)示例,遵循 numpy docstring 样式:
def calculate_inverse(matrix):
"""Calculate the inverse of a matrix.
Parameters
----------
matrix : ndarray
The matrix to be inverted.
Returns
-------
matrix_inv : ndarray
The inverse of the matrix.
"""
matrix_inv = scipy.linalg.inv(matrix)
return matrix_inv
特别是对于 python,我已经阅读了 PEP-257 和 sphinx/napoleon 示例 numpy 和 Google 样式的文档字符串。我喜欢我可以为我的函数自动生成文档,但是对于像上面这样的冗余示例,“最佳实践”是什么?不应该简单地记录“明显”的类、函数等吗? “显而易见”的程度当然会变得主观......
我想到的是开源的分布式代码。多位作者建议代码本身应该是可读的(calculate_inverse(A) 比 dgetri(A) 更好),但多个最终用户将从 sphinx 样式的文档中受益。
【问题讨论】:
-
如果你只是委托给另一个函数,你可以使用例如
calculate_inverse.__doc__ = scipy.linalg.inv.__doc__给它相同的文档。但是,您为 为谁编写此文档? -
请注意,复制
__doc__适用于导入代码的sphinx等工具。它可能不适用于像epydoc这样的工具,它只是从文本中解析文档字符串。 -
@jonrsharpe - 也许这个例子过于简化了;我的意思不仅仅是调用其他函数的函数。我只是指任何完全按照其名称所说的代码。
-
@barford 请注意,一个人的Ronseal 是另一个人的混淆。该名称也不一定告诉您该函数接受什么、它返回什么和/或可能引发什么等,以及如果您提供最终用户文档(如格式所暗示的那样),则代码是自记录的不一定有益。
标签: python-sphinx docstring numpydoc sphinx-napoleon