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实现快速排序和插入排序算法及自定义排序的示例
Feb 16 Python
python数据结构链表之单向链表(实例讲解)
Jul 25 Python
python实现手机通讯录搜索功能
Feb 22 Python
python sys.argv[]用法实例详解
May 25 Python
python找出列表中大于某个阈值的数据段示例
Nov 24 Python
Python测试Kafka集群(pykafka)实例
Dec 23 Python
Django全局启用登陆验证login_required的方法
Jun 02 Python
Python如何基于Tesseract实现识别文字功能
Jun 05 Python
python是怎么被发明的
Jun 15 Python
vscode配置anaconda3的方法步骤
Aug 08 Python
基于python的opencv图像处理实现对斑马线的检测示例
Nov 29 Python
Python脚本调试工具安装过程
Jan 11 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分页类的代码
2011/05/18 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
2013/06/01 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
JavaScript 基础问答三
2008/12/03 Javascript
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
用Javascript获取页面元素的具体位置
2013/12/09 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
微信小程序复选框实现多选一功能过程解析
2020/02/14 Javascript
Python函数式编程指南(二):从函数开始
2015/06/24 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
python3注册全局热键的实现
2020/03/22 Python
python之语音识别speech模块
2020/09/09 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
信息管理专业学生自荐信格式
2013/09/22 职场文书
婚礼新郎父母答谢词
2014/01/16 职场文书
假释思想汇报范文
2014/10/11 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
2014年共青团工作总结
2014/12/10 职场文书
北大自主招生自荐信
2015/03/04 职场文书
人工作失职检讨书
2015/05/05 职场文书
停发工资证明范本
2015/06/12 职场文书
老人节主持词
2015/07/04 职场文书
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers