Существует ли структурированный способ ссылки на метки параметров функций в строке документации Python?

Я использую инструмент pydoc для автоматического создания документации. Учитывая функцию:

def sum(a, b):
  """Returns the sum of a and b."""
  return a + b

Мне интересно, если есть структурированный способ использовать уценку, чтобы выделить ссылки на метки параметров функции? Например:

"""Returns the sum of 'a' and 'b'."""
"""Returns the sum of `a` and `b."""
"""Returns the sum of *a* and *b*."""
"""Returns the sum of **a** and **b**."""

Аналогично этому вопросу. Ссылка на параметры в строке документации Python, которая предполагает использование Sphinx вместо pydoc.

Также обратите внимание, что мне любопытно ссылаться на метки (а не на типы) параметров функции.

1 ответ

Решение

В Pydoc нет поддержки уценки.

Форматирование в строках документации ограничено распознаванием ссылок PEP и RFC, self. ссылки на атрибуты и ссылки на существующие имена (для других классов, методов и функций) при рендеринге в HTML, поэтому в этом режиме некоторые имена уже будут размечены. Однако это не распространяется на имена аргументов.

Пидок действительно использует inspect.signature() вывод в качестве основы для форматирования функции, поэтому если вы убедитесь, что у вас есть информативные подсказки типов, то вы по крайней мере получите возможность документировать типы аргументов и возвращаемое значение.

Таким образом (довольно надуманное) определение с использованием общего TypeVar определение вместо того, чтобы придерживаться float, лайк:

from typing import TypeVar

Number = TypeVar('Number', int, float)

def sum(a: Number, b: Number) -> Number:
    """Produce the sum of the two numbers, a and b"""
    return a + b

выходит в pydoc как

sum(a: ~Number, b: ~Number) -> ~Number
    Produce the sum of the two numbers, a and b
Другие вопросы по тегам