gpt4 book ai didi

Python合并多个装饰器小技巧

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python合并多个装饰器小技巧由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

django程序,需要写很多api,每个函数都需要几个装饰器,例如 。

复制代码 代码如下:

@csrf_exempt 
@require_POST 
def  foo(request): 
    pass 

既然那么多个方法都需要写2个装饰器,或者多个,有啥办法把多个合并成一行呢? 上面的函数执行过程应该是 。

复制代码 代码如下:

csrf_exempt(require_POST(foo)) 

修改成 。

复制代码 代码如下:

def compose(*funs): 
    def deco(f): 
        for fun in reversed(funs): 
            f = fun(f) 
        return f 
    return deco

  函数改写成 。

复制代码 代码如下:

@compose(csrf_exempt, require_POST) 
def foo(request): 
    pass 

  。

参考: Can I combine two decorators into a single one in Python 。

最后此篇关于Python合并多个装饰器小技巧的文章就讲到这里了,如果你想了解更多关于Python合并多个装饰器小技巧的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com