Obtendo a documentação de uma função

184

Eu tenho a seguinte função:

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

Como obtenho acesso à documentação?

Teifion
fonte
13
Observe que a execução do Python com -OO retira as instruções. Se você pretende distribuir seu código para outras pessoas, lembre-se de que elas podem ser executadas dessa maneira. Isso deixará essas pessoas realmente muito infelizes se o seu código se basear em documentos, mas não entender o caso em que eles não existem.
DNS

Respostas:

243

Interativamente, você pode exibi-lo com

help(my_func)

Ou a partir do código, você pode recuperá-lo com

my_func.__doc__
descontrair
fonte
1
BTW: Essa técnica trabalha com funções internas, bem como módulos e classes (test help () também com objetos - também pode funcionar). Isso faz do seu shell python um shell de ajuda interativo!
Daren Thomas
3
No prompt do ipython, você pode executar my_func ?? e mostraria a doutrina também.
Ronak 29/03/16
1
help (func) fornece uma saída legível, enquanto func .__ doc__ fornece uma saída embutida. Obrigado pela resposta.
imsrgadich
77

Você também pode usar inspect.getdoc. Ele limpa a __doc__normalização de guias em espaços e desloca o corpo do documento para a esquerda para remover os espaços iniciais comuns.

Andrew Dalke
fonte
8

No notebook ipython ou jupyter, você pode usar todas as maneiras mencionadas acima, mas eu vou com

my_func?

ou

?my_func

para um resumo rápido da assinatura e da documentação do método.

Eu evito usar

my_func??

(como comentado por @rohan) para docstring e use-o apenas para verificar o código-fonte

Sameer Sinha
fonte