Хотя это правда, Python переменные не могут иметь строки документации. Используя расширение Sphinx autodoc
, директивы autodata
и autoattribute
позволяют документировать переменные и константы. Обратите внимание, что использование отличается в случае переменной уровня модуля или члена класса.
Кроме того, если вы хотите определить значение для члена в документации, отличное от значения programmati c, лучшим способом будет с использованием аннотаций .
autodata и autoattribute поддерживают опцию аннотации.
Sphinx может собирать комментарии к объявлениям переменных и включать их в документацию (хотя эти комментарии не являются строками документации, они будут отображаться в документации). ). Давайте рассмотрим минимальный рабочий пример:
Исходный файл your_module_name.py
:
"""This modules documentation."""
ONE_CONSTANT = "A constant value."
"""Turns out the comment is rendered as a docstring if we put it underneath."""
#: Lets try it like this
TWO_CONSTANTS = 2000
class OneClass:
"""Commenting members of a class."""
#: Lets try the third comment like this.
THREE_CONSTANTS = 3000
#: Lets try the forth comment like this.
FOUR_CONSTANTS = 4000
Соответствующий your_module_name.rst
:
your\_module\_name module
=========================
.. automodule:: your_module_name
:members: ONE_CONSTANT, TWO_CONSTANTS
.. autodata:: ONE_CONSTANT
:annotation: =this annotation
.. autoclass:: OneClass
:members:
:undoc-members:
:show-inheritance:
Полученный HTML:
![enter image description here](https://i.stack.imgur.com/6pfqA.jpg)
Последнее замечание: это может привести к адаптации некоторых соглашений, которые вы ранее использовали для комментирования переменных в исходном коде. Кроме того, если вы используете аннотации, вы не захотите включать этот элемент в autodata
или automodule
, чтобы избежать его включения дважды.