Sphinx浮点格式化

ctr*_*rlc 7 python formatting python-sphinx

我正在使用Sphinx从代码生成文档.有没有人知道是否有办法控制默认参数生成的浮点数的格式.

例如,如果我有以下功能:

def f(x = 0.97):
    return x+1
Run Code Online (Sandbox Code Playgroud)

生成的文档最终看起来像:

foo(x = 0.96999999999997)
Run Code Online (Sandbox Code Playgroud)

显然这是一个浮点精度问题,但有没有办法让文档看起来不那么难看?

ddb*_*eck 1

您可以使用指令覆盖函数签名.. autofunction::foo(x=0.97)因此,为了解决您的示例,在 module 中定义了一个函数bar

.. automodule:: bar

   .. autofunction:: foo(x=0.97)
Run Code Online (Sandbox Code Playgroud)

生成的文档将使用提供的签名,而不是具有很长数字的解释版本。

您可以使用.. autoclass::and.. automethod::等等效方法来完成此操作。此用法记录在sphinx.ext.autodoc文档这部分的“选项和高级用法”中。