相关疑难解决方法(0)

我可以在包装函数之前修补Python装饰器吗?

我有一个装饰器的功能,我正在尝试借助Python Mock库进行测试.我想使用mock.patch将模拟'旁路'装饰器替换为真正的装饰器,它只调用该函数.我无法弄清楚的是如何在真正的装饰器包装函数之前应用补丁.我已经在补丁目标上尝试了一些不同的变体,并重新排序补丁和导入语句,但没有成功.有任何想法吗?

python unit-testing monkeypatching mocking decorator

66
推荐指数
3
解决办法
3万
查看次数

如何跳过或忽略python装饰器

有一个由装饰器包装的函数,它将函数的输出作为HTML返回.我想在没有装饰器的HTML包装的情况下调用该函数.这甚至可能吗?

例:

class a:
    @HTMLwrapper
    def returnStuff(input):
        return awesome_dict

    def callStuff():
        # here I want to call returnStuff without the @HTMLwrapper, 
        # i just want the awesome dict.
Run Code Online (Sandbox Code Playgroud)

python decorator

12
推荐指数
2
解决办法
4018
查看次数

按字符串名称获取修饰的函数对象

def log(func):
    def wraper(*a, **kw):   
        return func(*a, **kw)
    return wraper

@log
def f():
    print 'f'


print locals()['f'] # - prints <function wraper at 0x00CBF3F0>.
Run Code Online (Sandbox Code Playgroud)

你如何获得真正的f对象(不是装饰器包装)?

python string function decorator

1
推荐指数
2
解决办法
1065
查看次数