Да, то, что вы сделали , должно работать, и это - в конце концов - сработало для меня.
Чтобы продемонстрировать, я использую пример из документации Сфинкса, который вы привели:
class Foo:
"""Docstring for class Foo."""
#: Doc comment for class attribute Foo.bar.
#: It can have multiple lines.
bar = 1
flox = 1.5 #: Doc comment for Foo.flox. One line only.
baz = 2
"""Docstring for class attribute Foo.baz."""
def __init__(self):
#: Doc comment for instance attribute qux.
self.qux = 3
self.spam = 4
"""Docstring for instance attribute spam."""
Я сохранил это как module.py
и создал следующее index.rst
:
.. automodule:: module
Вместе с этим файлом конфигурации Sphinx, conf.py
:
import sys
sys.path.insert(0, '.')
extensions = ['sphinx.ext.autodoc']
autodoc_default_options = {
'members': True,
'member-order': 'bysource',
'special-members': '__init__',
}
Со всеми тремя файлами, хранящимися в одной папке, я запустил Sphinx (2.1.1) через sphinx-build . ./html
(на Python 3.7.3 и Windows 10), чтобы отобразить его как HTML:
![rendered HTML](https://i.stack.imgur.com/qpz7T.png)
Что касается того, что вы "могли испортить" ... Хм, это правильно, как я уверен, вы согласитесь. ;-) Мне потребовалось много времени, чтобы понять это, когда я сначала попробовал то же самое, что и выше, но с примером кода, который вы предоставили: два ваших предполагаемых атрибута экземпляра, instanceVar1
и instanceVar2
, пропускают self
идентификатор впереди. К сожалению. Вот почему это не сработало.