Как мне сделать перекрестную ссылку на функцию, созданную autodoc в Sphinx?

Я использую функцию Sphinx autodoc для создания документации на основе строк документации моей библиотеки Python.

Синтаксис перекрестных ссылок можно найти здесь

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

У меня есть файл .rst (ReStructeredText) для одного из моих классов. Оно использует

.. autoclass:: classname
    :members:

Сгенерировать документацию для класса.

У меня вопрос: как мне сослаться на автоматически сгенерированные методы класса из другого документа .rst в документации? Если я попытаюсь разместить метку в строке документации метода, Сфинкс пожалуется. Если я попытаюсь разместить метку перед заголовком метода, Sphinx не распознает ее.

Есть ли простой способ сделать это, или мне придется явно записать в моем файле класса имя метода и поставить перед ним метку?

Вот пример ссылки в [документации Python 2, делающей то, что мне нужно (Я предполагаю, что он использовал функцию autodoc, хотя я точно не знаю)


person Matthew Stamy    schedule 27.03.2014    source источник
comment
В заголовке задается вопрос о функциях, а в теле и ответе - о методах. Я надеялся, что будет ответ для ссылки на .. autofunction::, но, увы, его здесь нет.   -  person JFlo    schedule 13.02.2019


Ответы (1)


Вам не нужно добавлять ярлыки. Чтобы ссылаться на класс, метод или другой документированный объект Python, используйте разметку, предоставленную Python domain.

Например, следующее определяет перекрестную ссылку на метод mymethod:

:py:meth:`mymodule.MyClass.mymethod`

Или даже проще (поскольку по умолчанию используется домен Python):

:meth:`mymodule.MyClass.mymethod`

Документация TextWrapper.wrap, на которую вы ссылаетесь в вопросе включает две перекрестные ссылки такого типа (щелкните «Показать исходный код», чтобы увидеть разметку reST).

person mzjn    schedule 28.03.2014
comment
И :mod:… для модулей. - person Gringo Suave; 18.08.2018
comment
И :func:… для функций. Полный список перекрестных ссылок на роли Python: здесь. - person JFlo; 13.02.2019