我在写的包中添加了一些(epydoc)文档,我遇到了很多重复多次的实例。

def script_running(self, script):
    """Return if script is running

    @param script: Script to check whether running

    @return: B{True} if script is running, B{False} otherwise
    @rtype: C{bool}
    """

说:
一个衬垫适用于非常明显的情况。
以及
函数或方法的docstring应总结其行为,并记录其参数、返回值、副作用、引发的异常以及调用时的限制(如果适用,则全部)。
对于何时在一行(描述)和完整的参数/返回字段之间划一条线,是否有一般的指导原则或标准做法?
或者在生成文档时,我应该为每个函数包括每个适用的字段,而不管它看起来有多重复?
额外的问题:从语法上讲,描述参数的最佳方法是什么?

最佳答案

您正在寻找的一般性指导原则正是您所引用的PEP257中的,也许您只需要看到它的实际应用。
您的函数是一行docstring(“非常明显的情况”)的很好候选函数:

def script_running(self, script):
    """Check if the script is running."""

通常,如果您说函数正在检查某些内容,则意味着它将返回TrueFalse,但如果您愿意,可以更具体地说:
def script_running(self, script):
    """Return True if the script is running, False otherwise."""

又一次,都在同一条线上。
我可能还会更改函数的名称,因为不需要强调函数名称(脚本)中的工作内容。函数名应该是关于函数所做工作的甜的、短的和有意义的东西。也许我会同意:
def check_running(self, script):
    """Return True if the script is running, False otherwise."""

有时,函数名的想象力会被所有的编码所累,但无论如何,您都应该尽力做到最好。
对于多行示例,让我从google guidelines中借用docstring:
def fetch_bigtable_rows(big_table, keys, other_silly_variable=None):
    """Fetches rows from a Bigtable.

    Retrieves rows pertaining to the given keys from the Table instance
    represented by big_table.  Silly things may happen if
    other_silly_variable is not None.

    Args:
        big_table: An open Bigtable Table instance.
        keys: A sequence of strings representing the key of each table row
            to fetch.
        other_silly_variable: Another optional variable, that has a much
            longer name than the other args, and which does nothing.

    Returns:
        A dict mapping keys to the corresponding table row data
        fetched. Each row is represented as a tuple of strings. For
        example:

        {'Serak': ('Rigel VII', 'Preparer'),
         'Zim': ('Irk', 'Invader'),
         'Lrrr': ('Omicron Persei 8', 'Emperor')}

        If a key from the keys argument is missing from the dictionary,
        then that row was not found in the table.

    Raises:
        IOError: An error occurred accessing the bigtable.Table object.
    """

这可能是“总结其行为并记录其参数、返回值、副作用、引发的异常以及调用时间限制(如果适用)的一种方法”。
您可能也有兴趣看看这个example of pypi project文件,它是打算与Sphinx一起记录的。
我的2分:指导方针是要让你知道你应该做什么,不应该做什么,但它们不是你必须盲目遵循的严格规则。所以最后选择你觉得更好的。
我想澄清另一个关于用docstring达到最大行长度的答案中所说的一些内容。
PEP8告诉您“将所有行限制为最多79个字符”,即使最后每个人都是80个字符。
这是80个字符:
--------------------------------------------------------------------------------

这可能是一个边缘案例,你只需要一句很长的话:
def my_long_doc_function(arg1, arg2):
    """This docstring is long, it's a little looonger than the 80 charachters
    limit.

    """

就像一行docstring,这意味着这是非常明显的情况,但在您的编辑器(80字符限制)上是多行的。

关于python - Docstrings - 一行与多行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9392096/

10-11 20:46