本文介绍了如何在Sphinx处理的文档字符串中表示单个参数或返回值的多个类型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有时,Python中的函数可能会接受灵活类型的参数。或者,它可以返回灵活类型的值。现在我记不起这样一个函数的好例子了,所以我在下面用一个玩具例子演示这样的函数可能是什么样子。我想知道如何使用Sphinx文档表示法为这些函数编写文档字符串。在下面的示例中,参数可以是str
或int
。同样,它可能返回str
或int
。
我给出了一个文档字符串示例(既使用默认的Sphinx表示法,也使用Sphinx的拿破仑扩展理解的Google表示法)。我不知道这是否是记录灵活类型的正确方式。
Sphinx默认表示法:
def add(a, b):
"""Add numbers or concatenate strings.
:param int/str a: String or integer to be added
:param int/str b: String or integer to be added
:return: Result
:rtype: int/str
"""
pass
斯芬克斯·拿破仑谷歌符号:
def add2(a, b):
"""Add numbers or concatenate strings.
Args:
a (int/str): String or integer to be added
b (int/str): String or integer to be added
Returns:
int/str: Result
"""
pass
表示要由Sphinx处理的文档字符串中的参数或返回值的多个类型的正确方式是什么?
推荐答案
<2-4]>类型提示
https://docs.python.org/3/library/typing.html#typing.Union
对于Python2,我建议使用与该Python3模块完全相同的语法,即:
- 使移植更容易,并可能在以后实现自动化
- 指定唯一的、定义良好的规范方法
示例:
def f(int_or_float):
"""
:param int_or_float: Description of the parameter
:type int_or_float: Union[int, float]
:rtype: float
"""
return int_or_float + 1.0
然后当你有3.5的时候,你只需写:
from typing import Union
def f(int_or_float : Union[int, float]) -> float:
"""
:param int_or_float: Description of the parameter
"""
return int_or_float + 1.0
我认为它已经支持文档生成,但我还没有测试它:https://github.com/sphinx-doc/sphinx/issues/1968
这篇关于如何在Sphinx处理的文档字符串中表示单个参数或返回值的多个类型?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!