Python 对于数据结构类型(如列表),Sphinx docstring标准是什么?

Python 对于数据结构类型(如列表),Sphinx docstring标准是什么?,python,python-sphinx,Python,Python Sphinx,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

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 3.5类型提示

虽然Sphinx还不支持,但有一天它可能会使Sphinx类型的注释过时

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

  • 使移植更容易,而且以后可能是自动化的
  • 指定一种独特且定义良好的做事方式
例如:

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或int
部分可以用
Union
表示:

没有通用的标准-这里有一个建议,似乎也用于,例如:类型arg2:collections。Iterable[str]在Pycharm中为Python 2.7启用类型暗示。Python中是否有一种类似的联合类型可以用于arg3?接受
str或int
似乎有些奇怪,但如果是这样的话,我会这样写!同时还有一个扩展来支持它们。