gpt4 book ai didi

python-sphinx - 使用 Sphinx 的 Autodoc 仅显示私有(private)方法

转载 作者:行者123 更新时间:2023-12-05 05:09:22 25 4
gpt4 key购买 nike

这里有几个关于使用 Autodoc 显示私有(private)方法的问题,但我没有看到任何关于显示私有(private)方法的信息。

私有(private)方法和常规方法可以表示如下:

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

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

我怎样才能只显示私有(private)方法,并且只显示这个指令?

最佳答案

找到方法了!

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

在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: 并且成员名称不以 _ 开头(即它是一个公共(public)方法),它将被跳过并将没有出现在文档中。

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

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

公共(public)方法没有显示,私有(private)方法显示。

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

关于python-sphinx - 使用 Sphinx 的 Autodoc 仅显示私有(private)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57610288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com