2016-03-15 3 views
1

Я обычно инициализировать все атрибуты экземпляра в __init__:Как autodoc атрибуты частного экземпляра в сфинксе?

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.

Заранее спасибо.

ответ

0

Я провел несколько дополнительных тестов, и я все еще не смог создать документацию для частных атрибутов. У меня нет времени пропустить код autodoc, чтобы проверить, есть ли проблема на моей стороне или это просто выбор дизайнера. Я придумал следующую работу вокруг, хотя (в случае, если кто-то работает в подобных проблемах):

  1. задокументировать все государственные атрибуты в классе строке документации (как это было предложено NumPy стиля).
  2. задокументировать все частные атрибуты в __init__ строке документации (как я их инициализировать все там), используя обозначения для переменных:

    :ivar _private_attribute: description. 
    :vartype _private_attribute: int 
    

В результате частные атрибутов документированных в Переменные раздел. Это не идеально, но это работает для меня.

Смежные вопросы