链接到Python文档字符串中的类方法

Link to class method in python docstring(链接到Python文档字符串中的类方法)

本文介绍了链接到Python文档字符串中的类方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从同一个类的另一个方法的文档字符串中添加一个指向我的类中的方法的链接。我希望该链接在狮身人面像中工作,最好也在Spyder和其他Python IDE中工作。

我尝试了几个选项,只找到一个有效的选项,但它很麻烦。

假设mymodule.py中的以下结构

def class MyClass():
    def foo(self):
        print 'foo'
    def bar(self):
        """This method does the same as <link to foo>"""
        print 'foo'

我尝试了<link to foo>的以下选项:

  • :func:`foo`
  • :func:`self.foo`
  • :func:`MyClass.foo`
  • :func:`mymode.MyClass.foo`
唯一能有效生成链接的链接是:func:`mymode.MyClass.foo`,但链接显示为mymodule.MyClass.foo(),我想要一个显示为foo()foo的链接。
上面的选项都不会在Spyder中生成链接。

感谢您的帮助。

推荐答案

适用于Sphinx的解决方案是在引用前面加上~

根据Cross-referencing Syntax上的Sphinx文档,

如果为内容添加前缀~,则链接文本将只是最后一个 目标的组件。例如,:PY:METH:~Queue.Queue.get将 请参考Queue.Queue.Get,但仅将GET显示为链接文本。

所以答案是:

class MyClass():
    def foo(self):
        print 'foo'
    def bar(self):
        """This method does the same as :func:`~mymodule.MyClass.foo`"""
        print 'foo'

这将生成如下所示的html:This method does the same as foo()foo()是一个链接。

但是,请注意,这可能不会在Spyder中显示为链接。

这篇关于链接到Python文档字符串中的类方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:链接到Python文档字符串中的类方法

基础教程推荐