2009-04-03 4 views
114

Ich habe die folgende Funktion:gibt es den docstring aus einer Funktion

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

Wie kann ich Zugriff auf die docstring bekommen?

+9

Hinweis zu überprüfen, ob mit -OO Python läuft Docstrings abstreift. Wenn Sie beabsichtigen, Ihren Code an andere zu verteilen, denken Sie daran, dass sie den Code auf diese Weise ausführen können. Es wird diese Leute wirklich wirklich unglücklich machen, wenn Ihr Code auf Docstrings angewiesen ist, aber nicht den Fall erfasst, in dem sie nicht existieren. – DNS

+1

Prost für das, das ist ziemlich nützliche Informationen. – Teifion

+0

@DNS Danke, ich habe mich gefragt, warum alle meine Docstrings keine waren. – Timo

Antwort

157

interaktiv, können Sie es aus dem Code angezeigt werden mit

help(my_func) 

Oder Sie können es abrufen mit

my_func.__doc__ 
+1

BTW: Diese Technik funktioniert mit eingebauten Funktionen sowie Module und Klassen (Test Hilfe() mit Objekten auch - könnte auch funktionieren). Dies macht Ihre Python-Shell zu einer interaktiven Hilfe-Shell! –

+2

Auf der ipython-Eingabeaufforderung können Sie my_func ?? und es würde auch den Docstring zeigen. – ronak

+3

Python ist so verdammt cool – ThorSummoner

56

Sie auch inspect.getdoc verwenden können. Es bereinigt das __doc__, indem es Tabulatoren in Leerzeichen normalisiert und den Dokumententext verschiebt, um häufig vorkommende Leerzeichen zu entfernen.

+1

Nun, genau das habe ich selbst versucht. Dank dafür. – ereOn

1

Auf ipython oder jupyter Notebook können Sie alle oben genannten Möglichkeiten nutzen, aber ich gehe mit

my_func? 

oder

?my_func 

für kurze Zusammenfassung der beiden Methodensignatur und docstring.

Ich vermeide

my_func?? 

mit (wie durch @rohan kommentiert) für docstring und verwenden Sie nur den Quellcode

Verwandte Themen