2009-04-03 8 views
114

Mam następujących funkcji:Pierwsze docstring z funkcji

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

Jak uzyskać dostęp do docstring?

+9

zanotuj kod źródłowy, który działa Python z -oo wycina docstrings. Jeśli zamierzasz rozpowszechniać swój kod na innych, pamiętaj, że mogą go uruchomić w ten sposób. Sprawi to, że ludzie będą naprawdę niezadowoleni, jeśli twój kod opiera się na docstruktach, ale nie łapie przypadku, w którym nie istnieją. – DNS

+1

Wiwaty za to, to całkiem przydatne informacje. – Teifion

+0

@DNS Dzięki, zastanawiałem się, dlaczego wszystkie moje docstrings były None. – Timo

Odpowiedz

157

Interaktywnie, można wyświetlić ją

help(my_func) 

Albo z kodu można pobrać go z

my_func.__doc__ 
+1

BTW: Ta technika działa z wbudowanymi funkcjami, jak również z modułami i klasami (pomoc testowa() również z obiektami - może również działać). To sprawia, że ​​twoja powłoka Pythona jest interaktywną powłoką pomocy! –

+2

W pytaniu o pseudython możesz zrobić my_func ?? i pokaże również docstring. – ronak

+3

Python jest tak cholernie fajny – ThorSummoner

56

Można również użyć inspect.getdoc. Czyści on __doc__, normalizując tabulatory w spacje i lewo przesuwając ciało dokumentu, aby usunąć wspólne wiodące spacje.

+1

Właśnie to właśnie próbowałem zrobić sam. Dziękuję za to. – ereOn

1

Na ipython lub jupyter notebooka, można korzystać ze wszystkich wyżej wymienionych sposobów, ale idę z

my_func? 

lub

?my_func 

do szybkiego podsumowania zarówno podpisu metody i docstring.

I unikać

my_func?? 

(jak komentował @rohan) dla docstring i używać go tylko w celu sprawdzenia