Я хотел бы ссылаться на ранее зарегистрированный параметр функции в другом месте в docstring Python. Рассмотрим следующий (по общему признанию, полностью искусственный) пример:Как ссылаться на документированный параметр функции Python с помощью разметки Sphinx?
def foo(bar):
"""Perform foo action
:param bar: The bar parameter
"""
def nested():
"""Some nested function that depends on enclosing scope's bar parameter.
I'd like to reference function foo's bar parameter here
with a link, is that possible?"""
return bar * bar
# ...
return nested()
есть простой способ вставлять ссылки параметр, используя Sphinx разметку, или это будет происходить автоматически?
(Я полный Sphinx новичок. Я сканируя документы Сфинкса и не нашел ответ на этот вопрос, или пример, демонстрирующий правильную разметку.)
Это замечательно, но, похоже, не работает с докстерами Googly (например, теми, которые используются с 'sphinxcontrib.napoleon'). Это что-то, что можно заставить работать? – orome
зависит от того, как это работает. Если он переписывает параметры прямо на реструктурированный текст, sphinx-paramlinks вряд ли будет иметь многого, чтобы предложить это из коробки, поскольку он полагается на разбор необработанного RST до того, как сфинкс получит контроль над ним. Это во многом, чтобы избежать необходимости манипулировать внутренними элементами сфинкса. это было бы намного намного лучше, если бы Сфинкс просто реализовал эту функцию изначально на этом этапе. Я надеюсь, что мое расширение делает очевидным, насколько отчаянно нужна эта функция. – zzzeek
Спасибо. Я ожидал чего-то подобного (это имеет смысл). И я согласен с вами в том, что это отчаянно необходима функция. – orome