Python 如何生成类似numpy的文档?

Python 如何生成类似numpy的文档?,python,numpy,documentation,spyder,docstring,Python,Numpy,Documentation,Spyder,Docstring,我经常使用spyder和object inspector,我发现它作为即时帮助功能非常方便。有些模块似乎从这个功能中获益匪浅。例如,一个非常基本的numpy函数(numpy.absolute)在对象检查器中生成以下视图: 我想知道,当我在spyder中调用我的函数时,如何以这样的方式编写自己的模块,从而生成这样一个好的视图 要使您的文档呈现得像numpy文档一样好,您需要遵循标准。假设您有一个名为func的函数,它有两个参数,如下所示: def func(arg1, arg2): re

我经常使用spyder和object inspector,我发现它作为即时帮助功能非常方便。有些模块似乎从这个功能中获益匪浅。例如,一个非常基本的numpy函数(numpy.absolute)在对象检查器中生成以下视图:


我想知道,当我在spyder中调用我的函数时,如何以这样的方式编写自己的模块,从而生成这样一个好的视图

要使您的文档呈现得像numpy文档一样好,您需要遵循标准。假设您有一个名为
func
的函数,它有两个参数,如下所示:

def func(arg1, arg2):
    return True
func<Ctrl+i>(1, "a")
要向其添加文档,您需要在其定义(在Python world docstring中调用)下编写一个多行字符串,如下所示

def func(arg1, arg2):
    """Summary line.

    Extended description of function.

    Parameters
    ----------
    arg1 : int
        Description of arg1
    arg2 : str
        Description of arg2

    Returns
    -------
    bool
        Description of return value

    Examples
    --------
    >>> func(1, "a")
    True
    """
    return True
Spyder所做的是,它接受这个纯文本描述,将其解析并呈现为html,最后在对象检查器中显示它

要查看它,只需在代码中的其他地方调用
func
,然后按旁边的Ctrl+i,如下所示:

def func(arg1, arg2):
    return True
func<Ctrl+i>(1, "a")
func(1,“a”)

当您在
func

旁边写左括号时,这也会自动显示。如果您的Python项目(或文件)已使用其他样式(如
reStructuredText
eByText
)进行了文档化或未进行文档化,则可以使用以下方法将docstring生成/转换为
NumpyDoc
样式:

请注意,前面的命令在安装Pyment后运行,将生成应用于代码的修补程序


使用Numpydoc样式记录项目后,可以使用生成可读性好的Numpydoc样式文档

numpydoc绝对令人惊奇,更多的项目绝对应该采用它!几乎所有Python科学项目都使用它,但我认为Spyder的Object Inspector也鼓励更广泛的受众在其代码中采用它。您可以通过单击函数定义(不在别处调用)并按CTRL+Q(在Windows上)查看快速文档(在PyCharm中)。它可以在其他IDE或操作系统中类似地工作。干杯这个答案以前怎么没有被发现和更新?这就是我长久以来一直在寻找的东西。谢谢