Найти тему
IT для всех

Читаем документацию к Python прямо в интерпретаторе

Оглавление

В Python есть возможность читать встроенную в код документацию с помощью двух инструментов, а также писать собственную.

Рассмотрим, как это можно делать:

Получаем документацию с помощью метода help()

Вызов метода help(), возвращает полную справку о переданной функции/объекте.

Синтаксис:

print(help(<объект справки>)

Например:

Справка вернула полную информацию о List-e, включая методы его исходного кода(их намного больше, так как все перечислять слишком долго).

Это работает со всеми стандартными функциями и объектами.

Мы получили слишком много ненужной информации, которую не будем использовать. Как же получить только самое главное?

Получаем документацию с помощью атрибута __doc__

Сделаем тоже самое, но только используя атрибут __doc__

Синтаксис:

print(list.__doc__)
-2

Если мы хотим узнать, например как работает стандартный метод строки - split(), то синтаксис будет выглядеть так:

print(str.split.__doc__)
-3

Атрибут вернул только так называемый docstring, если посмотреть выше, то эти же строки содержит вывод help() в начале.

docstring - это такая строковая переменная, которая позволяет получить доступ к встроенной в код документации.

То есть, встроенный класс list, в исходниках выглядит примерно так, точнее его начало:

-4

Синтаксис docstring-a - тройные кавычки.

Вызывать вывод docstring намного проще чем help(), так как он обычно содержит исчерпывающую информацию о функции, синтаксисе и возможных особенностях того, что нас интересует.

Это работает со всеми стандартными функциями и объектами.

Пишем собственную документацию

Соответственно, если мы знаем синтаксис переменной документации, то можем сами её писать к своему коду? Конечно, да.

Напишем функцию сложения чисел:

-5

И добавим к ней документацию:

-6

Теперь сравним два метода получения документации рассмотренных выше, уже на нашей собственной функции:

-7

И их выводы:

help()

-8

Здесь нам вывело шаблон в виде названия функции, её документации, и то что она находится в модуле __main__.

__doc__

-9

Атрибут вывел только сам docstring, что является намного удобнее так как не захламлено лишним.

Кстати, требование к документации модулей, классов и функций заложена в рекомендации к стилистике кода PEP8.
Потому что наличие документации облегчает чтение чужого кода, тем более когда мы имеем такие удобные инструменты быстрого получения интересующей нас информации, если конечно документация грамотно написана

Наука
7 млн интересуются