相关疑难解决方法(0)

Python Sphinx autodoc和装饰成员

我试图使用Sphinx来记录我的Python类.我这样做是使用autodoc:

.. autoclass:: Bus
   :members:
Run Code Online (Sandbox Code Playgroud)

虽然它正确地获取我的方法的文档字符串,那些装饰:

    @checkStale
    def open(self):
        """
        Some docs.
        """
        # Code
Run Code Online (Sandbox Code Playgroud)

@checkStale存在

def checkStale(f):
    @wraps(f)
    def newf(self, *args, **kwargs):
        if self._stale:
            raise Exception
        return f(self, *args, **kwargs)
    return newf
Run Code Online (Sandbox Code Playgroud)

有一个不正确的原型,如open(*args, **kwargs).

我怎样才能解决这个问题?我的印象是使用@wraps会修复这种事情.

python decorator python-sphinx

26
推荐指数
3
解决办法
8646
查看次数

让狮身人面像识别正确的签名

我一直在努力获取我的文档,以便我正在开发一个包含镜像客户端和服务器API的开源项目.为此,我创建了一个装饰器,大部分时间都可以用来记录一个简单地对其输入执行验证的方法.你可以找到一个完整的类这些方法在这里和装饰的实现在这里.

正如您所见,装饰器functools.wraps用于保存文档字符串,我也认为是签名,但源代码与生成的文档如下所示:

资源:源代码

VS

文档: 狮身人面像文档

有谁知道有任何方法让setH生成的文档显示正确的呼叫签名?(没有为每个签名设置一个新的装饰器 - 我需要镜像的方法)

我找到了一个解决方法,其中涉及让装饰器不更改未绑定的方法,但让类在绑定时改变方法(对象实例化) - 这看起来像是一个黑客,所以任何评论,或其他方式的做法这,将不胜感激.

python decorator python-sphinx

13
推荐指数
2
解决办法
1291
查看次数

标签 统计

decorator ×2

python ×2

python-sphinx ×2