Ho una classe Python qualcosa di simile a quanto segue, con docstring destinati ad essere convertiti in documenti da Sphinx:Come posso generare documentazione per un setter di proprietà Python usando 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
L'uscita Sfinge sembra qualcosa di simile:
classeDirezione (nome) Una direzione in cui è possibile effettuare il movimento.
nome Il nome univoco della direzione.
Returns: Il nome direzione
Tipo ritorno: stringa
che va bene per quanto si va, ma è da notare la completa assenza di qualsiasi informazione circa il setter name
.
C'è un modo per ottenere Sphinx per generare documentazione per il setter di proprietà?
Sembra che abbia più senso documentare qualsiasi comportamento specifico di get/set nella documentazione getter se è lì che Sphinx lo cerca. La documentazione per il setter qui è fondamentalmente superflua: è una proprietà, quindi ovviamente imposta il valore, e anche la documentazione del parametro è inutile perché ogni setter richiede lo stesso argomento, e il setter non verrà effettivamente chiamato esplicitamente. Il comportamento speciale di get/set è in realtà una caratteristica della proprietà nel suo insieme. Il punto delle proprietà è che vi si accede tramite un singolo nome di attributo, non chiamate di funzione get/set separate. – BrenBarn
@BrenBarn Posso certamente farlo se è quello che Sphinx si aspetta. Tuttavia, la documentazione generata in realtà non indica che si tratta di una proprietà e non sono sicuro di come posso usare i tag ': param:', ': return:' e ': rtype:' per chiarirlo? –
@MatthewMurdoch, Sphinx documenta il getter senza usare '()'. Questo, insieme alla docstring combinata, dovrebbe aiutare l'utente a capire che si tratta di una proprietà. –