获取斯芬克斯显示功能参数当与装饰包裹(Getting sphinx to display funct

2019-10-20 14:57发布

我使用的狮身人面像记录的项目,并因与包裹在装饰功能的问题。 我也有类似的问题要问,但没有解决办法似乎符合我的问题

我有数以百计的功能都包裹在一个定制的装饰本身可以接受参数

from functools import wraps

def CustomFunctionDecorator(id, name):
    """Custom decorator"""
    def outer(f):

        @wraps(f)
        def inner(*args, **kwargs):
            ...do stuff....
            f(*args, **kwargs)

        return inner

    return outer

然后我的函数看起来像这样

@CustomFunctionDecorator(123, 'Test')
def TestFunction(a, b, c=None):
    """Test Documentation"""
    ..do something....

现在,当我使用的狮身人面像和车博士生成我的文档,我的所有功能包裹在CustomFunctionDecorator隐藏功能的实际参数的狮身人面像文档中,并出现类似这样的

TestFunction(*args, **kwargs)

测试文档

文档工作,但功能参数不....

有任何想法吗? 希望我说清楚

Answer 1:

每这样的回答 :

functools.wraps只保留__name____doc__ ,和__module__ 。 为了保持签名以及看看米歇尔Simionato的装饰模块 。

这是一种解决方法,而不是一个解决方法,但每个文档 (重点煤矿):

这是可能的覆盖签名明确记录可调用的对象(函数,方法,类)与常规语法将覆盖从反省中获得的签名:

 .. autoclass:: Noodle(type) .. automethod:: eat(persona) 

如果从方法签名是由装饰隐藏这是非常有用的

新的0.4版。

显然,对于“数函数”,将不能享受快乐...



文章来源: Getting sphinx to display function parameters when wrapped with decorator