使用Sphinx'AutoDoc仅显示私有方法 [英] Showing only private methods with Sphinx' Autodoc

查看:17
本文介绍了使用Sphinx'AutoDoc仅显示私有方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这里有几个关于使用AutoDoc显示私有方法的问题,但我没有看到任何关于仅显示私有方法的问题。

私有方法和常规方法如下:

.. autoclass:: my_package.my_file.MyClass
   :members:
   :private-members:

但是,删除:members:会导致方法被显示。

我如何才能仅显示私有方法,并且仅针对此指令?

推荐答案

找到办法了!

使用此处详细介绍的Skipping Members设置,我能够定义有选择地跳过成员的规则。

配置文件:

def hide_non_private(app, what, name, obj, skip, options):
    # if private-members is set, show only private members
    if 'private-members' in options and not name.startswith('_'):
        # skip public methods
        return True
    else:
        # do not modify skip - private methods will be shown
        return None

def setup(app):
    app.connect('autodoc-skip-member', hide_non_private)
只要AutoDoc必须决定是否在文档中包含某个成员(只要指令的主题包含该成员,它就会这样做),就会调用该函数。此函数返回一个布尔值,表示是否应跳过此成员。如果True,则不会出现。如果False,就是这样。如果None,则忽略此函数的结果,并调用下一个跳过检查方法。

如果指令包含选项:private-members:,并且成员名称不是以_开头(即它是公共方法),则会跳过它,并且不会出现在文档中。

因此,当我使用:

生成文档时
.. autoclass:: my_package.my_file.MyClass
   :members:
   :private-members:

未显示公共方法,但显示了私有方法。

但是,我仍然需要设置:members:,否则该检查根本就不会发生。如果我发现确实需要列出公共和私有方法的地方,我将需要找到一些更复杂的检查。

这篇关于使用Sphinx'AutoDoc仅显示私有方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆