Ottenere il docstring da una funzione


184

Ho la seguente funzione:

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

Come posso accedere al docstring?


13
Si noti che l'esecuzione di Python con -OO elimina gli argomenti. Se intendi distribuire il tuo codice ad altri, tieni presente che potrebbero eseguirlo in quel modo. Renderà queste persone davvero infelici se il tuo codice si basa su dotstring, ma non capisce il caso in cui non esistono.
DNS

Risposte:


243

In modo interattivo, puoi visualizzarlo con

help(my_func)

O dal codice è possibile recuperarlo con

my_func.__doc__

1
A proposito: questa tecnica funziona con funzioni integrate, nonché moduli e classi (anche la guida di test () con oggetti - potrebbe funzionare). Questo rende la tua shell Python una shell di aiuto interattiva!
Daren Thomas,

3
Al prompt di ipython, puoi fare my_func ?? e mostrerebbe anche la dotstring.
ronak,

1
help (func) fornisce un output leggibile mentre func .__ doc__ fornisce un output inline. Grazie per la risposta.
imsrgadich,

77

Puoi anche usare inspect.getdoc. Pulisce le __doc__schede normalizzando gli spazi e spostando a sinistra il corpo del documento per rimuovere gli spazi iniziali comuni.


8

Sui notebook ipython o jupyter, puoi usare tutti i modi sopra menzionati, ma vado avanti

my_func?

o

?my_func

per un rapido riepilogo sia della firma del metodo che della docstring.

Evito di usare

my_func??

(come commentato da @rohan) per docstring e utilizzarlo solo per controllare il codice sorgente

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.