如何使用Sphinx标记引用有文档记录的Python函数参数?

2022-04-20 00:00:00 python python-sphinx docstring

问题描述

我想在一个Python文档字符串中的其他地方引用前面介绍过的函数参数。请考虑以下(诚然完全是人为的)示例:

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文档,但没有找到这个问题的答案,也没有找到演示正确标记的示例。)


解决方案

我刚刚构建了一个扩展来完成此任务。到目前为止,它似乎还在使用独立的HTML构建和额外的ReadtheDocs(经过一些调整后)。

该扩展名位于:https://pypi.python.org/pypi/sphinx-paramlinks/。

我现在正在为Alembic和SQLAlChemy项目推出它。(sample)。

我不同意这样的建议,即链接到参数意味着文档太长。在这里,Python标准库是一个糟糕的例子,因为stdlib函数必须是细粒度的和简单的。正在完成更粗粒度任务的软件,其中单个功能位于要解决的复杂问题之上,通常会有需要更多解释的参数;这种解释通常非常有价值,因为它是其他地方特定问题的解决方案,因此能够链接到它是非常重要的。

相关文章