如何用Sphinx记录Python函数参数?

pftdvrlh  于 2023-03-07  发布在  Python
关注(0)|答案(3)|浏览(405)

我正在整理我的python代码文档,决定使用sphinx-doc,因为它看起来不错,我喜欢用这样的标签引用其他类和方法:

:class:`mymodule.MyClass` About my class.
:meth:`mymodule.MyClass.myfunction` And my cool function

我试着弄清楚如何在函数中记录参数名,这样如果我有一个函数:

def do_this(parameter1, parameter2):
   """
   I can describe do_this.

   :something?:`parameter1` And then describe the parameter.

   """

这方面的最佳实践是什么?

更新日期:

正确的语法为:

def do_this(parameter1, parameter2):
   """
   I can describe do_this.

   :something parameter1: And then describe the variable
   """
fdx2calv

fdx2calv1#

通常"函数变量"称为参数;).
它记录在这里:www.example.comhttp://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#signatures
答案是:param ________

    • 编辑**免责声明:我从来没有使用过或听说过斯芬克斯...这篇文章主要是一个"什么词搜索。"希望它有所帮助。
dhxwm5r4

dhxwm5r42#

将此答案添加到合并选项中:
pydoc是基本的,没有特殊格式
epydoc使用格式“@param var:”
Doxygen面向更广泛的语言
Sphinx使用":param type var:“格式。另请参阅更多示例。这用于创建Python 3.5 documentation

a0zr77ik

a0zr77ik3#

如何记录类型

还值得注意的是参数类型的旧语法:type parameter2: MyClass,也在www.example.com上有文档https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#signatures
但是使用Python 3 typing,我们可以:
main.py

#!/usr/bin/env python

class MyClass:
    """
    This class does that.
    """
    def __init__(self, i):
        self.i = i

def do_this(parameter1: int, parameter2: MyClass):
   """
   This function does this.

   :param parameter1: my favorite int
   :param parameter2: my favorite class
   """
   return parameter1 + parameter2.i

build.sh

sphinx-build . out

conf.py

import os
import sys
sys.path.insert(0, os.path.abspath('.'))
extensions = [ 'sphinx.ext.autodoc' ]
autodoc_default_options = {
    'members': True,
}

index.rst

.. automodule:: main

requirements.txt

Sphinx==6.1.3

out/index.html上的输出:

注意它是如何将参数类型正确地链接到类MyClass的文档的。

相关问题