Python合并多个装饰器的方法

  • 更新时间:2020-01-17 08:47:57
  • 编辑:从俊远
这篇文章主要介绍了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

以上就是适合利用Python合并多个装饰器?的详细内容,更多请关注码农之家其它相关文章!

相关教程

  • python进阶之自定义可迭代的类

    这篇文章主要为大家详细介绍了python进阶之自定义可迭代的类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2019-09-09

  • 使用Python实现NBA球员数据查询小程序功能

    这篇文章主要介绍了使用Python实现NBA球员数据查询小程序功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    发布时间:2021-05-02

  • Python科学计算

    Python科学计算

    本书详细介绍Python科学计算中最常用的扩展库NumPy、SciPy、matplotlib、Pandas、SymPy、TTK、Mayavi、OpenCV、Cython,涉及数值计算、界面制作、三维可视化、图像处理、提高运算效率等多方面的内容。所

    大小:59.5 MBPython电子书

  • Python核心编程

    Python核心编程

    全方位包含现如今应用程序开发中的诸多行业为初级Python开发者出示优秀实践活动方式包含很多好用的编码实例每章结尾的练习题有利于推进所教专业知识 想全面提高Python编程水准?请详细分

    大小:22.4 MBPython编程电子书

  • 你也能看得懂的Python算法书

    你也能看得懂的Python算法书

    很杰出:凝聚力4位创作者10年程序编写工作经验,陪你理解优化算法的精粹 很趣味:全书选用栩栩如生幽默的語言,让优化算法已不好学 很实战演练:全书包含36个案例,9类别优化算法,很有

    大小:54 KBPython算法电子书

  • python机器学习:Scikit-learn使用手册

    python机器学习:Scikit-learn使用手册

    scikit-learn是在Python中进行机器学习简单且高效的工具可用于数据挖掘和数据分析,这里提供Scikit-learn 使用手册,欢迎下载

    大小:36.8 MBScikit-learn电子书

  • 可爱的Python

    可爱的Python

    人生短暂,我用Python! 它是CPyuG(汉语Python用户群)的提倡。由于Python一起有着这种不凡魔法:平台的/充电电池内嵌的/面向对象编程的/高級数据类型内嵌的/表述型开发语言的/Pythoni

    大小:7 MBPython电子书

  • Python3.7从零开始学

    Python3.7从零开始学

    本书专门针对Python新手量身定做,是编者学习和使用Python开发过程中的体会和经验总结,涵盖实际开发中重要的知识点,内容详尽,代码可读性及可操作性强。

    大小:75.8 MBPython3.7电子书

  • 精通Python爬虫框架Scrapy

    精通Python爬虫框架Scrapy

    大小:8.6 MBPython爬虫电子书

用户留言