【发布时间】:2020-09-26 23:10:05
【问题描述】:
有没有办法使用 Sphinx 在 Python 文档字符串中指示“有效范围”?例如,考虑以下线性函数。
def f(m, x, b):
"""
Returns the `y` value of a linear function using slope-intercept form.
:param x: The x-axis value.
:type x: float
:param m: The slope of the linear function.
:type m: float
:param b: The y-intercept.
:type b: float
"""
if x < 0:
raise ValueError('The min "x" value of this function is 0')
return m * x + b
有没有办法将x 的域表示为“x 必须大于零”?或者用区间表示法,[0, infinity]。
具体来说,有没有办法使用 Sphinx 在 Python 文档字符串中记录这一点?
【问题讨论】:
-
为什么不把它附加到定义中呢?
:param x: The x-axis value. The min "x" value of this function is 0. -
@StevePiercy 我可以这样做,但我希望 Sphinx 中可能有一个选项(或其他东西)可以为函数的
domain添加一些特殊格式,所以当呈现后查看文档。 -
没有这个功能。 Autodoc 只解析 Python 域中的方法签名和文档字符串,而不是任意代码。
-
以一种惯用的 Pythonic 方式定义
domain将是在 Sphinx 将呈现的文档字符串中定义一个 doctest(取决于 sphix 主题)作为警告。注意,doctest 是一个简单的 Python 结构,主要用于表达简单的案例。对于更详细的用例,您将实现一个domain类,记录它并交叉引用它。文档的关键是一致性,您可以口头说明该域正在使用某种形式的反引号或粗体突出显示。 -
您可能还想考虑switch from basic ReST syntax 的优势。
标签: python python-sphinx docstring