Mic*_*x2a 10 python documentation python-sphinx
我有一个类似这样的模块:
#!/usr/bin/env python
#: Documentation here.
#: blah blah blah
foobar = r'Some really long regex here.'
def myfunc(val=foobar):
'''Blah blah blah'''
pass
Run Code Online (Sandbox Code Playgroud)
...我有一个.rst类似这样的文件:
:mod:`my_module` Module
-----------------------
..automodule:: my_module
:members:
:private-members:
:show-inheritance:
Run Code Online (Sandbox Code Playgroud)
当我构建文档时,我得到一个带有代码片段的html文件,如下所示:
mymodule.foobar.foobar = '这里有一些荒谬漫长而丑陋的正则表达式'
这里有额外的文档
MyModule的.myfunc(val ='这里有一些荒谬漫长而丑陋的正则表达式')
等等等等等等
基于这个stackoverflow帖子,我想我可以通过改变我的模块来改变它:
#!/usr/bin/env python
#: .. data:: my_module.foobar
#: Extra documentation here
foobar = 'Some really long regex here.'
def myfunc(val=foobar):
'''.. function:: my_module.myfunc(val=foobar)
Blah blah blah'''
pass
Run Code Online (Sandbox Code Playgroud)
......但是那并没有做到这一点,只是将丑陋的签名作为身体的一部分附加.有谁知道我怎么能正确地覆盖它?
(我正在使用Sphinx v1.1.3,顺便说一下.)
mzj*_*zjn 14
您有一个模块级变量,用作函数中关键字参数的默认值.Sphinx在函数签名中显示该变量的值(而不是名称).另一个问题讨论了这个问题,OP也在GitHub上提交了一张关于它的问题单.
但是,您可以通过两种方式解决此问题:
使用链接覆盖.rst文件中的签名autofunction,如链接问题的答案中所述.
如果docstring的第一行看起来像签名,并且autodoc_docstring_signature配置变量设置为True(默认情况下是这样),那么Sphinx将使用该行作为签名.
因此,如果您的文档字符串如下所示,
def myfunc(val=foobar):
'''myfunc(val=foobar)
Blah blah blah'''
pass
Run Code Online (Sandbox Code Playgroud)
它应该以你想要的方式工作.
在这个问题中,你在docstring中有第一行:
.. function:: my_module.myfunc(val=foobar)
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为它看起来不像是一个合适的签名.
| 归档时间: |
|
| 查看次数: |
3912 次 |
| 最近记录: |