Строки документов в стиле наполеона, как они описаны в документах по сфинксу (см. класс ExampleError
, чтобы узнать об этом) явно коснитесь вашего случая:
Метод __init__ может быть задокументирован либо в строке документации уровня класса, либо как строка документации в самом методе __init__.
И если вы не хотите такого поведения, вам необходимо явно указать sphinx, что строка документации конструктора и строка документации класса - это не одно и то же.
Это означает, что вы можете просто вставить информацию о конструкторе в тело строки документации класса.
В случае, если вы создаете документы из своих строк документации, вот детали, которые могут быть достигнуты:
1) Самый минимум:
@dataclass
class TestClass:
"""This is a test class for dataclasses.
This is the body of the docstring description.
"""
var_int: int
var_str: str
![введите описание изображения здесь](https://i.stack.imgur.com/14K5s.png)
2) Дополнительное описание параметра конструктора:
@dataclass
class TestClass:
"""This is a test class for dataclasses.
This is the body of the docstring description.
Args:
var_int (int): An integer.
var_str (str): A string.
"""
var_int: int
var_str: str
![введите описание изображения здесь](https://i.stack.imgur.com/Kq0CH.png)
3) Описание дополнительного атрибута:
@dataclass
class TestClass:
"""This is a test class for dataclasses.
This is the body of the docstring description.
Attributes:
var_int (int): An integer.
var_str (str): A string.
"""
var_int: int
var_str: str
![введите описание изображения здесь](https://i.stack.imgur.com/CrUJ1.png)
Описания параметров и атрибутов, конечно, также можно комбинировать, но поскольку классы данных должны быть прямыми сопоставлениями, я не вижу причин для этого.
На мой взгляд, 1) подойдет для небольших или простых классов данных - он уже включает сигнатуру конструктора с соответствующими типами, чего достаточно для класса данных. Если вы хотите подробнее рассказать о каждом атрибуте, лучше всего подойдет 3).
person
Arne
schedule
02.07.2018
'C(name: str, number: int)'
, но строка документации для автоматически сгенерированного метода__init__
- этоNone
. Итак, я полагаю, вы могли бы вручную назначить__init__
docstring после определения класса. Хотя немного неуклюже. - person snakecharmerb   schedule 01.07.2018help
, но, возможно, не для генераторов документации, таких как Sphinx. - person snakecharmerb   schedule 01.07.2018