认为..automodule ::
应用于包的指令会自动将子模块记录为成员(通过与类、变量等进行比较)可能是一种误解。
我刚刚对此进行了测试,但无法使用:private-members:
and or:special-members:
来完成。不是通过在.. automodule::
与包对应的指令中写入任何一个选项。(尝试同时设置两个选项autodoc_default_options
会得到相同的结果。)
以下包和模块布局示例:
C:.
│
└────your_package
│
│ public_module.py
│ _private_module.py
│ __init__.py
将 a.rst
与单个.. automodule::
包装一起使用:
Your package rst
================
.. automodule:: your_package
:members:
:undoc-members:
:private-members:
:special-members:
带有文档字符串的最小示例_private_module.py
(public_module.py
除了标题相同):
"""Private module docstring."""
class PublicClass:
"""Docstring."""
pass
确实给出了一个空文档:
![在此处输入图像描述](https://i.stack.imgur.com/5GPTT.png)
但是如果你从模块中删除下划线,你会得到完全相同的结果。
我试图避免通过脚本解析 package_name.rst 来添加它们
如果您使用if标志生成.rst
文件:sphinx-apidoc
-P
-P,--私人
包括“_private”模块。1.2 版中的新功能。
生成的文件将包含.. automodule::
私有模块的指令,这确实具有包含选项的副作用,:private-members:
如另一篇文章“在 sphinx-apidoc 生成的文件中包含 __main__.py”中所述。
明确包含.. automodule::
指令的示例:
Your package rst
================
.. automodule:: your_package
:members:
:undoc-members:
.. automodule:: your_package.public_module
:members:
:undoc-members:
.. automodule:: your_package._private_module
:members:
:undoc-members:
结果:
![在此处输入图像描述](https://i.stack.imgur.com/oH6Nz.png)