如何在sphinx中自动调整私有实例属性?

时间:2016-03-15 19:41:31

标签: python python-sphinx

我通常会初始化__init__中的所有实例属性:

def __init__(self):
"""
Initializer docstring.
"""
    self.test1 = None  #: test1 docstring
    self._test2 = None  #: test2 docstring
    self.test3 = None
    """test3 docstring"""
    self._test4 = None
    """test4 docstring"""

我希望记录我的所有实例属性,包括私有属性。

为了生成文档,我使用了以下代码:

.. automodule:: module_name
    :members:
    :member-order: bysource
    :show-inheritance:
    :private-members:
    :special-members:

然而,私有实例属性仍然被省略。我错过了什么?

我使用python 2.7,Sphinx 1.2.3和sphinx-rtd-theme 0.1.9。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

我运行了一些额外的测试,但仍然无法生成私有属性的文档。我没有时间运行 autodoc 代码来验证问题是否在我身边,或者它只是设计师的选择。我提出了以下工作(如果其他人遇到类似的问题):

  1. 我记录了docstring类中的所有公共属性(由 NumPy 样式建议)。
  2. 我使用变量表示法记录__init__ docstring中的所有私有属性(因为我在那里初始化它们):

    :ivar _private_attribute: description.
    :vartype _private_attribute: int
    
  3. 因此, Variables 部分中记录了私有属性。它并不完美,但对我有用。