J'ai beaucoup d'objets appelables et ils ont tous la chaîne __doc__
correctement remplie, mais l'aide courante sur eux produit l'aide pour leur classe au lieu de l'aide basée sur __doc__
.Où la fonction d'aide pydoc de Python obtient-elle son contenu?
Je veux le modifier afin que l'aide en cours d'exécution produit une aide personnalisée qui ressemble essentiellement à ce que j'obtiendrais si elles étaient des fonctions réelles au lieu des instances d'une classe qui implémente __call__
.
Dans le code, je voudrais faire la sortie de celle-ci:
class myCallable:
def __init__(self, doc):
self.__doc__ = doc
def __call__(self):
# do some stuff
pass
myFunc = myCallable("some doco text")
help(myFunc)
ressemble plus à la sortie de celle-ci:
def myFunc():
"some doco text"
# do some stuff
pass
help(myFunc)
Je pense que le problème ici est que myFunc basé sur la classe a une instance de type, alors que l'autre a une fonction de type. Je ne suis pas sûr s'il y a un moyen de contourner cela. (essayez le type d'impression (myFunc) sur chacun de voir) – Suppressingfire
vous avez raison sur les types, cette information est-elle utilisée dans pydoc? –