Многострочное описание описания параметра в docstring python

Итак, reStructuredText - это рекомендуемый способ для кода Python документации, если вы достаточно стараетесь, вы можете найти в документации sphinx как нормализовать документацию подписи функций. Все приведенные примеры однострочный, но что, если описание параметра многострочно, как показано ниже

def f(a, b):
    """ Does something with a and b

    :param a: something simple
    :param b: well, it not something simple, so it may require more than eighty
              chars
    """

Что такое синтаксис/соглашение для этого? Должен ли я отступать или нет? будет ли он разбит реструктурированный текст?

Ответы

Ответ 1

Похоже, что если вы отступали хотя бы на один уровень относительно директивы: param:, он не нарушит рендеринг реструктурированного текста. Лично я предпочитаю выравнивать все дополнительные строки до первой строки описания этого параметра. Обратите внимание, что reST также игнорирует новые строки и выводит текст без разрывов строк.

К сожалению, я не смог найти источник, который мог бы упомянуть об этой проблеме, или привести пример многострочного: param: description.

Ответ 2

просто новая строка, в которой вы хотите разбить строку.

def f(a, b):
    """ Does something with a and b

    :param a: something simple
    :param b: well, it not something simple, 
              so it may require more than eighty
              chars
    """

Ответ 3

Да, кажется, что вам удобнее работать с отступами для Sphinx, и pep8 не спорит. Кроме того, если вы не хотите, чтобы описание было многострочным в подготовленной документации, вы можете использовать традиционные линейные ошибки Python с помощью \:

 def f(a, b):
    """ Does something with a and b

    :param a: something simple
    :param b: well, it not something simple, so it may require more \
              than eighty chars
    """