Ho molti oggetti chiamabili e tutti hanno la stringa __doc__
correttamente compilata, ma la guida in esecuzione su di essi produce l'aiuto per la loro classe invece della guida basata su __doc__
.Da dove viene la funzione di aiuto pydoc di Python a ottenere il suo contenuto?
Voglio cambiarlo in modo che l'aiuto in esecuzione su di essi produca un aiuto personalizzato che assomigli in sostanza a ciò che otterrei se fossero funzioni effettive anziché istanze di una classe che implementa __call__
.
In codice, mi piacerebbe fare l'output di questo:
class myCallable:
def __init__(self, doc):
self.__doc__ = doc
def __call__(self):
# do some stuff
pass
myFunc = myCallable("some doco text")
help(myFunc)
guardare più come l'uscita di questo:
def myFunc():
"some doco text"
# do some stuff
pass
help(myFunc)
La mia ipotesi è che il problema qui è che il myFunc basato sulla classe ha istanza di tipo, mentre l'altra ha la funzione type. Non sono sicuro se c'è un modo per aggirare questo. (prova il tipo di stampa (myFunc) su ciascuno per vedere) – Suppressingfire
hai ragione sui tipi, è quella informazione usata all'interno di pydoc? –