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


184

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

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

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


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) для строки документации и используйте ее только для проверки исходного кода

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.