Pobieranie docstring z funkcji

184

Mam następującą funkcję:

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

Jak uzyskać dostęp do dokumentów?

Teifion
źródło
13
Zauważ, że uruchomienie Pythona z -OO usuwa dokumenty. Jeśli zamierzasz rozpowszechniać swój kod innym, pamiętaj, że mogą go uruchomić w ten sposób. Sprawi, że ci ludzie będą naprawdę niezadowoleni, jeśli twój kod będzie opierał się na dokumentach, ale nie wychwyci przypadku, w którym ich nie ma.
DNS

Odpowiedzi:

243

Interaktywnie możesz to wyświetlić za pomocą

help(my_func)

Lub z kodu możesz go odzyskać

my_func.__doc__
rozwijać
źródło
1
BTW: Ta technika działa z wbudowanymi funkcjami, a także modułami i klasami (pomoc testowa () również z obiektami - może również działać). To sprawia, że ​​powłoka pytona jest interaktywną powłoką pomocy!
Daren Thomas
3
W wierszu polecenia ipython możesz zrobić my_func? i pokazywałoby również dokumentację.
ronak
1
help (func) daje czytelny wynik, a func .__ doc__ daje wynik wyjściowy. Dziękuję za odpowiedź.
imsrgadich,
77

Możesz także użyć inspect.getdoc. Czyści się __doc__, normalizując tabulatory do spacji i przesuwając w lewo treść dokumentu, aby usunąć typowe spacje wiodące.

Andrew Dalke
źródło
8

Na ipython lub notatniku jupyter możesz używać wszystkich wyżej wymienionych sposobów, ale idę z tym

my_func?

lub

?my_func

do szybkiego podsumowania zarówno podpisu metody, jak i dokumentu.

Unikam używania

my_func??

(skomentowane przez @rohan) do docstring i używaj go tylko do sprawdzania kodu źródłowego

Sameer Sinha
źródło