Sphinx与python函数交叉引用的问题

时间:2013-09-17 09:29:19

标签: python python-sphinx

我在Sphinx中交叉引用函数时遇到了一些问题。 只要我只有一个模块,就像:func:`myfunc`工作正常,我可以点击链接来访问引用的函数。

然而,添加更多模块会破坏链接,我无法再点击它。解决这个问题的唯一方法是列出函数的完整名称:: func:`mymodule.mysubmodule.MyClass.myfunc`。这有点烦人,特别是因为整个名字也出现在html页面中。

至少在html文档中是否有办法缩短链接的名称? 即你只读了myfunc而不是mymodule.mysubmodule.MyClass.myfunc?

谢谢!

1 个答案:

答案 0 :(得分:3)

有两件事可能会有用:

  • 如果您当前的模块(使用.. currentmodule::设置)与链接模块一致,则不必明确指定。您还可以从另一个的docstring中引用其中一个类方法。来自doc
  

通常,首先搜索这些角色中的名称而不进一步限定,然后使用前面的当前模块名称,然后使用当前模块和类名(如果有)作为前缀。如果您在名称前加上一个点,则此顺序相反。

  • 如果您在全名前加~,如:func:`~mymodule.mysubmodule.MyClass.myfunc`,则HTML只会包含最后一部分。