是否可以在Sphinx中隐藏Python函数参数?
问题描述
假设我有以下Numpydoc style中记录的函数,文档是通过Sphinxautofunction directive自动生成的:
def foo(x, y, _hidden_argument=None):
"""
Foo a bar.
Parameters
----------
x: str
The first argument to foo.
y: str
The second argument to foo.
Returns
-------
The barred foo.
"""
if _hidden_argument:
_end_users_shouldnt_call_this_function(x, y)
return x + y
我不想将隐藏参数宣传为我的公共API的一部分,但它显示在我的自动生成的文档中。有没有办法告诉Sphinx忽略函数的特定参数,或者(更好的)让它自动忽略带有前导下划线的参数?
解决方案
我认为在Sphinx中没有这样的选项。无需侵入代码即可实现此目的的一种可能方法是使用自定义签名。
在这种情况下,您需要如下内容:
.. autofunction:: some_module.foo(x, y)
这将覆盖函数的参数列表,并在文档中隐藏不需要的参数。
相关文章