首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Sphinx autodoc记录单个私有属性?

如何使用Sphinx autodoc记录单个私有属性?
EN

Stack Overflow用户
提问于 2019-01-31 18:00:00
回答 1查看 1.3K关注 0票数 4

我使用sphinx和autodoc扩展从python模块中的docstring自动生成文档。

我目前使用automodule指令来记录该模块的所有公共成员。

代码语言:javascript
复制
.. automodule::
    :members:

我的模块也有许多私有属性。我想把其中一个写进文件里。

有没有一种方法可以告诉automodule记录所有的公共成员,以及这一个私有成员?我尝试过使用:private-members:选项,但这包括所有私有成员。我也尝试过手动指定私有属性,但是它没有记录任何公共成员。

代码语言:javascript
复制
.. automodule::
    :members: _PRIVATE_ATTR

我想避免手动列出每个公共成员,只为了添加这个私有成员。

有办法用autodoc做这个吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-02 09:46:08

下面是我所期望的工作(用Sphinx1.8.3测试):

代码语言:javascript
复制
.. automodule:: yourmodule
   :members:
   :private-members: _PRIVATE_ATTR

但这不太管用。如果给出了:private-members:选项,不管有没有参数,都会包含所有私有成员(前提是他们有一个docstring)。

:special-members:选项使用参数,所以:private-members:没有参数是很奇怪的。

相反,您可以使用autodata

代码语言:javascript
复制
.. automodule:: yourmodule
   :members:

.. autodata:: yourmodule._PRIVATE_ATTR

下面是一个略有不同的选择,autodata在“automodule”中

代码语言:javascript
复制
.. automodule:: yourmodule
   :members:

   .. autodata:: _PRIVATE_ATTR

还有一个autoattribute指令,但它不适用于模块级的“数据成员”。我发现autoattribute可以用来记录私有类属性,但是文献资料不清楚autodataautoattribute之间的确切区别。

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

https://stackoverflow.com/questions/54466643

复制
相关文章

相似问题

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