我正在使用sphinx和autodoc扩展名从python模块中的文档字符串自动生成文档。
我目前使用automodule
指令来记录模块的所有公共成员
.. automodule::
:members:
我的模块还具有许多私有属性。我想在文档中包括其中之一。
是否可以告诉automodule
记录所有公共成员以及该私人成员的文件?我尝试使用:private-members:
选项,但这包括所有私人成员。我也尝试过手动指定private属性,但是它没有记录任何公共成员。
.. automodule::
:members: _PRIVATE_ATTR
我想避免只为添加此私人成员而手动列出每个公共成员的情况。
是否可以通过autodoc做到这一点?
答案 0 :(得分:2)
这是我期望的工作(使用Sphinx 1.8.3测试):
.. automodule:: yourmodule
:members:
:private-members: _PRIVATE_ATTR
但是效果不佳。如果给出了:private-members:
选项(带或不带参数),则将包括所有私有成员(前提是它们具有文档字符串)。
:special-members:
带参数,所以:private-members:
没有带参数很奇怪。
您可以使用autodata
:
.. automodule:: yourmodule
:members:
.. autodata:: yourmodule._PRIVATE_ATTR
这里是autodata
在“ automodule
里面”的替代选项:
.. automodule:: yourmodule
:members:
.. autodata:: _PRIVATE_ATTR
还有一个autoattribute
指令,但不适用于模块级“数据成员”。我发现autoattribute
可以用于记录私有的 class属性,但是the documentation尚不清楚autodata
和autoattribute
之间的确切区别