Меня немного смущает стандарт PEP257 для документирования классов.
Он говорит: «Строка документации для класса должна суммировать его поведение и перечислять методы publi c и переменные экземпляра»
Но он также говорит, что все функции должны иметь строки набора (что, конечно, я хочу, чтобы help () работала).
Но, похоже, это связано с дублированием, т.е.
class foo:
"""A class
Attributes
----------
bar : str
A string
Methods
-------
__init__(fish):
Constructor, fish is a str which self.bar will be set to.
baz():
A function which does blah
"""
def __init__(self, fish):
"""
Constructs an XRTProductRequest object.
Parameters
----------
fish : str
A string, which the self.bar attribute will be set to.
"""
etc...
Это довольно подвержено ошибкам, потому что это означает, что, когда я понимаю, что __init__
также должен получать int, тогда я должен не забыть обновить документы в двух местах, что, я гарантирую, я забуду.
Он также дублирует вывод pydo c: он печатает строку документации моего класса, но затем говорит: «Методы, определенные здесь», и переходит к перечислению всех методов через их собственные строки документации.
Итак, действительно ли это дублирование является частью PEP257, или я неправильно его читаю? Следует ли мне удалить раздел «Методы» в строке документации класса, поскольку у каждого метода есть собственная строка документации? Или это дублирование действительно является частью стандарта?
TIA