首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅显示使用Sphinx‘Autodoc的私有方法

仅显示使用Sphinx‘Autodoc的私有方法
EN

Stack Overflow用户
提问于 2019-08-22 13:17:23
回答 1查看 372关注 0票数 2

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

私有方法和常规方法可以显示如下:

代码语言:javascript
复制
.. autoclass:: my_package.my_file.MyClass
   :members:
   :private-members:

但是,删除:members:会导致不显示任何方法。

如何才能只显示私有方法,以及这一指令?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-22 14:21:22

找到办法了!

使用这里详细介绍的跳过成员设置,我能够定义一个规则来选择性地跳过成员。

在conf.py中:

代码语言:javascript
复制
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必须决定是否在文档中包含一个成员(每当指令的主题包含该成员时,它就会这样做),这个函数就会被调用。函数返回一个bool,表示是否应该跳过该成员。如果是True,它就不会出现。如果是False的话,是的。如果是None,则忽略该函数的结果,并调用下一个跳过检查方法。

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

因此,当我使用以下方法生成文档时:

代码语言:javascript
复制
.. autoclass:: my_package.my_file.MyClass
   :members:
   :private-members:

公共方法不显示,私有方法显示。

不过,我仍然需要设置:members:,否则这一检查一开始就不会发生。如果我找到了实际需要列出公共和私有方法的地方,我需要找到一些更复杂的检查方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57610288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档