Получение строки документа из функции

184

У меня есть следующая функция:

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

Как мне получить доступ к документации?

Teifion
источник
13
Обратите внимание, что запуск Python с -OO удаляет строки документации. Если вы намереваетесь распространять свой код среди других, имейте в виду, что они могут выполнять его таким образом. Это действительно сделает тех людей действительно несчастными, если ваш код опирается на строки документации, но не поймает тот случай, когда они не существуют.
DNS

Ответы:

243

Интерактивно вы можете отобразить его с помощью

help(my_func)

Или из кода вы можете получить его с

my_func.__doc__
размотать
источник
1
Кстати: этот метод работает со встроенными функциями, а также с модулями и классами (test help () также с объектами - также может работать). Это делает вашу оболочку python интерактивной справочной оболочкой!
Дарен Томас
3
В приглашении ipython вы можете сделать my_func ?? и это также покажет строку документации.
Ронак
1
help (func) дает читабельный вывод, а func .__ doc__ - встроенный вывод. Спасибо за ответ.
imsrgadich
77

Вы также можете использовать inspect.getdoc. Он очищает __doc__, нормализуя вкладки до пробелов и сдвигая влево тело документа, чтобы удалить общие пробелы.

Эндрю Далке
источник
8

На ноутбуке ipython или jupyter вы можете использовать все вышеперечисленные способы, но я иду с

my_func?

или

?my_func

для быстрого суммирования как сигнатуры метода, так и строки документа.

Я избегаю использования

my_func??

(как прокомментировал @rohan) для строки документации и используйте ее только для проверки исходного кода

Самер Синха
источник