Ответ 1
если вы используете sphinx 1.1 или выше, с сайта документации sphinx по адресу http://sphinx.pocoo.org/ext/autodoc.html,
:special-members:
:private-members:
Я использую Sphinx для документирования моего проекта python. У меня включено расширение autodoc и в моих документах есть следующее.
.. autoclass:: ClassName
:members:
Проблема заключается в том, что она только документирует не частные методы в классе. Как включить частные методы?
если вы используете sphinx 1.1 или выше, с сайта документации sphinx по адресу http://sphinx.pocoo.org/ext/autodoc.html,
:special-members:
:private-members:
Один из способов обойти это - явно заставить Сфинкса документировать частные члены. Вы можете сделать это, добавив automethod
в конец документов уровня класса:
class SmokeMonster(object):
"""
A large smoke monster that protects the island.
"""
def __init__(self,speed):
"""
:param speed: Velocity in MPH of the smoke monster
:type speed: int
.. document private functions
.. automethod:: _evaporate
"""
self.speed = speed
def _evaporate(self):
"""
Removes the smoke monster from reality. Not to be called by client.
"""
pass
Пробовал ли вы использовать настраиваемый метод для определения того, должен ли член быть включен в документацию, используя autodoc-skip-member
?
Рассматривая код apidoc, мы можем изменить то, что sphinx-apidoc производит настройку переменной среды:
export SPHINX_APIDOC_OPTIONS='members,special-members,private-members,undoc-members,show-inheritance'
Вы также можете добавить эту настройку в свой файл Makefile (если ваш пакет использует его):
docs:
rm -rf docs/api
SPHINX_APIDOC_OPTIONS='members,special-members,private-members,undoc-members,show-inheritance' sphinx-apidoc -o docs/api/ intellprice
$(MAKE) -C docs clean
$(MAKE) -C docs html
Нет, private означает private для класса и что он не должен использоваться из общедоступного API. Это не означает секрет, и для тех из нас, кто хочет использовать sphinx для полной документации классов, исключая частные методы, это довольно раздражает.
Предыдущий ответ правильный. Вам придется использовать настраиваемый метод, поскольку Sphinx в настоящее время не поддерживает autodoc в сочетании с частными методами.
Вы можете добавить это в файл conf.py
:
autodoc_default_flags = ['members', 'undoc-members', 'private-members', 'special-members', 'inherited-members', 'show-inheritance']
Вот намек: представьте, что частные средства "секретны".
Вот почему Сфинкс не будет документировать их.
Если вы не имеете в виду "секрет", подумайте об изменении их имен. Избегайте использования имени однодискового подчеркивания в целом; это не поможет, если у вас нет причин держать эту секрецию в секрете.