Python合并多个装饰器小技巧


Posted in Python onApril 28, 2015

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中的多重继承实例讲解
Sep 28 Python
Python中操作文件之write()方法的使用教程
May 25 Python
python实现批量改文件名称的方法
May 25 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
Python基于百度云文字识别API
Dec 13 Python
python3 selenium自动化测试 强大的CSS定位方法
Aug 23 Python
如何利用Python开发一个简单的猜数字游戏
Sep 22 Python
Python实现分数序列求和
Feb 25 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 Python
django 实现简单的插入视频
Apr 07 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
查看Python安装路径以及安装包路径小技巧
Apr 28 #Python
Python中获取对象信息的方法
Apr 27 #Python
用实例解释Python中的继承和多态的概念
Apr 27 #Python
Python中设置变量访问权限的方法
Apr 27 #Python
理解Python中的类与实例
Apr 27 #Python
简述Python中的面向对象编程的概念
Apr 27 #Python
介绍Python中的__future__模块
Apr 27 #Python
You might like
PHP可变函数的使用详解
2013/06/14 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
js 利用className得到对象的实现代码
2011/11/15 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
JS利用正则表达式实现简单的密码强弱判断实例
2017/06/16 Javascript
将 vue 生成的 js 上传到七牛的实例
2017/07/28 Javascript
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
Django中使用Celery的教程详解
2018/08/24 Python
解析Python3中的Import
2019/10/13 Python
python列表推导式操作解析
2019/11/26 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
2020/02/28 Python
基于python代码批量处理图片resize
2020/06/04 Python
python math模块的基本使用教程
2021/01/16 Python
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
工程专业毕业生自荐信范文
2013/12/25 职场文书
大学生学年自我鉴定
2014/02/10 职场文书
课堂教学改革实施方案
2014/03/17 职场文书
安全生产目标责任书
2014/04/14 职场文书
七一讲话心得体会
2014/09/05 职场文书
践行三严三实心得体会
2014/10/13 职场文书
基层工作经验证明样本
2014/11/16 职场文书
护士自荐信范文
2015/03/25 职场文书
礼仪培训心得体会
2016/01/22 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书
MySQL系列之二 多实例配置
2021/07/02 MySQL