是否有一个Sphinx reST Python docstring字段用于收益?

问题描述 投票:18回答:2

我正在尝试使用reST风格的文档字符串,即

def foo(bar):
    """a method that takes a bar

    :param bar: a Bar instance
    :type bar: Bar

有没有标准的方法来记录yields?我看着http://sphinx-doc.org/domains.html#info-field-lists,a-la这个问题[Using javadoc for Python documentation],但没有运气。我想象的是,

    :yields: transformed bars
    :yield type: Baz

谢谢!

python documentation python-sphinx restructuredtext
2个回答
7
投票

Python 3.5 Iterator[]注释

它们为此提供了标准化的Iterator[]语法,如https://docs.python.org/3/library/typing.html#typing.Generator所述

在Python 3之前,我建议您使用此语法以便以后更容易移植:

from typing import List
def f():
    """
    :rtype: Iterator[:class:`SomeClass`]
    """
    yield SomeClass()

在Python 3之后,使用https://pypi.python.org/pypi/sphinx-autodoc-annotation语法:

from typing import Iterator
def f() -> Iterator[SomeClass]:
    yield SomeClass()

1
投票

我已经回顾了另一个答案,我认为它不回答这个问题。

记录生成器的方法尽管不是最好的,但是在其他文档中使用:return。使用说明通知它是一个生成器。

Google / Numpy样式文档的收益率会将收益率转换为返回子句。

https://bitbucket.org/RobRuana/sphinx-contrib/src/a06ae33f1c70322c271a97133169d96a5ce1a6c2/napoleon/sphinxcontrib/napoleon/docstring.py?at=default&fileviewer=file-view-default#docstring.py-678:680

© www.soinside.com 2019 - 2024. All rights reserved.