Obtenir la docstring à partir d'une fonction


184

J'ai la fonction suivante:

def my_func():
    """My docstring is both funny and informative"""
    pass

Comment accéder à la docstring?


13
Notez que l'exécution de Python avec -OO supprime les docstrings. Si vous avez l'intention de distribuer votre code à d'autres, gardez à l'esprit qu'ils peuvent l'exécuter de cette façon. Cela rendra ces personnes vraiment très mécontentes si votre code repose sur des docstrings, mais ne comprend pas le cas où elles n'existent pas.
DNS

Réponses:


243

De manière interactive, vous pouvez l'afficher avec

help(my_func)

Ou à partir du code, vous pouvez le récupérer avec

my_func.__doc__

1
BTW: Cette technique fonctionne avec des fonctions intégrées ainsi que des modules et des classes (test help () avec des objets aussi - peut également fonctionner). Cela fait de votre shell python un shell d'aide interactif!
Daren Thomas

3
Sur l'invite ipython, vous pouvez faire my_func ?? et il afficherait également le docstring.
ronak

1
help (func) donne une sortie lisible tandis que func .__ doc__ donne une sortie en ligne. Merci d'avoir répondu.
imsrgadich

77

Vous pouvez également utiliser inspect.getdoc. Il nettoie le __doc__en normalisant les onglets en espaces et en déplaçant à gauche le corps du document pour supprimer les espaces de début communs.


8

Sur ipython ou jupyter notebook, vous pouvez utiliser toutes les méthodes mentionnées ci-dessus, mais je vais avec

my_func?

ou

?my_func

pour un résumé rapide de la signature de méthode et de la docstring.

J'évite d'utiliser

my_func??

(comme commenté par @rohan) pour docstring et utilisez-le uniquement pour vérifier le code source

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.