什么是数据结构类型(如列表)的Sphinx文档字符串标准?

问题描述 投票:6回答:1

Sphinx是否有一个支持的标准来记录参数或返回值类型不是一个简单的单个对象?

例如,在下面,arg1是str,arg2是str的列表,arg3是str或int。如何在Sphinx中指定集合或复合类型?或者这没有共同的标准?

def function(arg1, arg2, arg3):
    """
    :param arg1: Argument 1
    :type arg1: str
    :param arg2: Argument 2
    :type arg2: list[str]
    :param arg3: Argument 3
    :type arg3: str or int
    """
    pass
python python-sphinx
1个回答
3
投票

Python 3.5类型提示

虽然Sphinx尚未支持,但有一天可能会使Sphinx类型的注释过时。 https://docs.python.org/3/library/typing.html

目前,我建议使用与该模块完全相同的语法,它将:

  • 稍后可以使移植更容易,也可以自动化
  • 指定一种独特定义明确的方法

例:

def f(list_of_int):
    """
    :type list_of_int: List[int]
    :rtype: int
    """
    return list_of_int[0] + list_of_int[1]

那么当你有3.5时,你会写:

def f(list_of_int : List[int]) -> int:
    return list_of_int[0] + list_of_int[1]

str or int部分可以用Union表示:How to express multiple types for a single parameter or a return value in docstrings that are processed by Sphinx?

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