这里有几个关于使用Autodoc显示私有方法的问题,但我没有看到任何关于只显示私有方法的内容。
私有方法和常规方法可以显示如下:
.. autoclass:: my_package.my_file.MyClass
:members:
:private-members:但是,删除:members:会导致不显示任何方法。
如何才能只显示私有方法,以及这一指令?
发布于 2019-08-22 14:21:22
找到办法了!
使用这里详细介绍的跳过成员设置,我能够定义一个规则来选择性地跳过成员。
在conf.py中:
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:,且成员名不以_开头(即它是一个公共方法),则会跳过它,并且不会出现在文档中。
因此,当我使用以下方法生成文档时:
.. autoclass:: my_package.my_file.MyClass
:members:
:private-members:公共方法不显示,私有方法显示。
不过,我仍然需要设置:members:,否则这一检查一开始就不会发生。如果我找到了实际需要列出公共和私有方法的地方,我需要找到一些更复杂的检查方法。
https://stackoverflow.com/questions/57610288
复制相似问题