Mam klasy Python coś jak poniżej, z docstrings mają być przekształcone w dokumentacji przez Sphinx:Jak mogę wygenerować dokumentację dla setera właściwości Pythona za pomocą Sphinx?
class Direction(object):
"""
A direction in which movement can be made.
"""
def __init__(self):
self._name = None
@property
def name(self):
"""
The unique name of the direction.
:return: The direction name
:rtype: string
"""
return self._name
@name.setter
def name(self, value):
"""
Sets the direction name.
:param string value: The direction name
"""
self._name = value
Wyjście Sphinx wygląda mniej więcej tak:
klasyDirection (name) Kierunek, w którym można wykonać ruch.
nazwa Unikalna nazwa kierunku.
Powroty: Z nazwą kierunek
typ Powrót: ciąg
co jest w porządku, jak dalece jak to jest, ale należy pamiętać, kompletny brak jakiejkolwiek informacji o setera name
.
Czy istnieje sposób, aby Sphinx wygenerował dokumentację dla właściciela nieruchomości?
Wygląda na to, że bardziej sensowne byłoby udokumentowanie jakiegokolwiek specjalnego zachowania get/set w dokumentacji gettera, jeśli tam Sphinx go szuka. Twoja dokumentacja dla settera jest w zasadzie zbędna: jest to właściwość, więc oczywiście ustawia wartość, a dokumentowanie parametru jest również niepotrzebne, ponieważ każdy program ustawiający wymaga tego samego argumentu, a program ustawiający nie będzie faktycznie wywoływany jawnie. Specjalne zachowanie get/set jest tak naprawdę cechą właściwości jako całości. Punktem właściwości jest dostęp za pośrednictwem pojedynczej nazwy atrybutu, a nie oddzielnych wywołań funkcji get/set. – BrenBarn
@BrenBarn Z pewnością mogę to zrobić, jeśli Sphinx się tego spodziewa. Jednak wygenerowana dokumentacja faktycznie nie wskazuje, że jest to właściwość i nie jestem pewien, w jaki sposób mogę użyć znaczników ': param: ',': return: 'i': rtype: ', aby było to jasne? –
@MatthewMurdoch, Sphinx dokumentuje gettera bez użycia '()'. To, wraz z połączonym docstringiem, powinno pomóc użytkownikowi zrozumieć, że jest to własność. –