Я пишу легкий клас, атрибути якого призначені для загальнодоступного доступу, і лише іноді перекриваються в конкретних моментах На мові Python не передбачено створення документів для атрибутів класу чи будь-яких атрибутів. Який очікуваний та підтримуваний спосіб, чи має бути такий, щоб документувати ці атрибути? В даний час я займаюся такою справою:
class Albatross(object):
"""A bird with a flight speed exceeding that of an unladen swallow.
Attributes:
"""
flight_speed = 691
__doc__ += """
flight_speed (691)
The maximum speed that such a bird can attain.
"""
nesting_grounds = "Raymond Luxury-Yacht"
__doc__ += """
nesting_grounds ("Raymond Luxury-Yacht")
The locale where these birds congregate to reproduce.
"""
def __init__(self, **keyargs):
"""Initialize the Albatross from the keyword arguments."""
self.__dict__.update(keyargs)
У результаті вийде докстринг класу, що містить початковий стандартний розділ docstring, а також рядки, додані для кожного атрибута за допомогою розширеного призначення __doc__
.
Хоча цей стиль не видається прямо забороненим в настановах стилю docstring , він також не згадується як варіант. Перевага тут полягає в тому, що він забезпечує спосіб документування атрибутів поряд з їх визначеннями, створюючи при цьому докстринг презентабельного класу та уникаючи необхідності писати коментарі, що повторюють інформацію з docstring. Мені все одно дратується, що я мушу насправді писати атрибути двічі; Я розглядаю можливість використання рядкових представлень значень у docstring, щоб хоча б уникнути дублювання значень за замовчуванням.
Це грізне порушення тимчасових конвенцій громади? Це добре? Чи є кращий спосіб? Наприклад, можна створити словник, що містить значення та docstrings для атрибутів, а потім додати вміст до класу __dict__
та docstring до кінця декларації класу; це зменшило б необхідність вводити імена атрибутів і значення атрибутів двічі. редагувати : ця остання ідея, я думаю, насправді не можлива, принаймні, не без динамічного побудови всього класу з даних, що здається дійсно поганою ідеєю, якщо немає інших причин для цього.
Я досить новачок у python і все ще опрацьовую деталі стилю кодування, тому також непомітна критика також вітається.
attribute doc string
згадка в PEP 257, яка недостатньо відома і здається, що важко знайти, що може відповісти на питання ОП, і підтримується деякими джерелами інструментів. Це не думка. Це факт, і частина мови, і майже все те, що хоче ОП.