您有一个模块级变量,该变量用作函数中关键字参数的默认值。Sphinx在函数签名中显示该变量的值(而不是名称)。这个问题将在问题中进行讨论,OP还已在GitHub上提交了有关此问题的问题单。
但是,可以通过两种方法解决此问题:
通过使用来覆盖.rst文件中的签名
autofunction
,如链接问题的答案中所述。如果文档字符串的第一行看起来像签名,并且如果autodoc_docstring_signature配置变量设置为
True
(默认情况下),则Sphinx将使用该行作为签名。
因此,如果您的文档字符串如下所示,
def myfunc(val=foobar): '''myfunc(val=foobar) Blah blah blah''' pass
它应该以您想要的方式工作。
在问题中,您在文档字符串中具有第一行:
.. function:: my_module.myfunc(val=foobar)
这不起作用,因为它看起来不像是正确的签名。



