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 struct.unpack
Sep 06 Python
跟老齐学Python之永远强大的函数
Sep 14 Python
Python中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
使用Python的Zato发送AMQP消息的教程
Apr 16 Python
Python读写配置文件的方法
Jun 03 Python
python3.4用函数操作mysql5.7数据库
Jun 23 Python
Python实现的列表排序、反转操作示例
Mar 13 Python
Django models.py应用实现过程详解
Jul 29 Python
python如何保证输入键入数字的方法
Aug 23 Python
使用TensorFlow搭建一个全连接神经网络教程
Feb 06 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 Python
Python递归实现打印多重列表代码
Feb 27 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
ini_set的用法介绍
2014/01/07 PHP
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
PHP实现图片压缩
2020/09/09 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
JSON JQUERY模板实现说明
2010/07/03 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
Python中的CURL PycURL使用例子
2014/06/01 Python
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
浅谈终端直接执行py文件,不需要python命令
2017/01/23 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
python做量化投资系列之比特币初始配置
2018/01/23 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
Restful_framework视图组件代码实例解析
2020/11/17 Python
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
生产内勤岗位职责
2013/12/07 职场文书
好家长事迹材料
2014/01/23 职场文书
见习期自我鉴定范文
2014/03/19 职场文书
社区维稳工作方案
2014/06/06 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
人才市场接收函
2015/01/30 职场文书
单位考核聘任报告
2015/03/02 职场文书
如何用JavaScipt测网速
2021/05/09 Javascript