Несколько возвращаемых значений в строках документа reStructuredText (Python 3) - PullRequest
0 голосов
/ 28 сентября 2019

Я документирую все свои функции Python с помощью строк документации reStructuredText.К сожалению, я не могу описать несколько возвращаемых значений .Все стандартные ссылки, которые я нашел, относятся только к случаю одного возвращаемого значения, например Sphinx-Doc или Realpython .

Пример:

def get_linear_function_2d(p1, p2):
    """
    Compute 2d linear function in slope-intercept form
       y = mx + n
    based on two coinciding (x,y) points.

    :param tuple p1: (x,y) tuple describing one point that lies on the line
    :param tuple p2: (x,y) tuple describing another point that lies on the line (has to differ in x)
    <START OF ISSUE: How to document?>
      :return float: slope (m)
      :return float: y-intercept (n)
    <END OF ISSUE>
    """
    assert isinstance(p1, tuple) and len(p1) == 2 and all([isinstance(val, (int, float)) for val in p1])
    assert isinstance(p2, tuple) and len(p2) == 2 and all([isinstance(val, (int, float)) for val in p2])
    assert p1[0] != p2[0]
    m = (p2[1] - p1[1]) / (p2[0] - p1[0])
    n = p1[1] - m * p1[0]
    return m, n

Примечание: Этот вопрос был поднят для Python 2, см. Как документировать множественные возвращаемые значения с помощью reStructuredText в Python 2? .

Однако:

  • этот вопрос был посвящен Python 2
  • прошло несколько лет
  • ответы не ссылаются ни на одну официальную ссылку
  • даже если нет официальной ссылки на множественные возвращаемые значения, мне не ясно, что является лучшей практикой (ни один из двух ответов не выделяется) - я думаю, что это довольно распространенная проблема, и мне не терпится посмотреть, как вы, ребята, работаетевокруг этого отсутствия стандарта!

1 Ответ

1 голос
/ 28 сентября 2019

Python технически не имеет нескольких возвращаемых значений.Разделенные запятыми значения в операторе возврата в Python просто означают, что вы возвращаете одно значение кортежа.Документируйте это как кортеж.

...