适合利用Python合并多个装饰器?
这篇文章主要介绍了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
函数改写成
立即学习“Python免费学习笔记(深入)”;
@compose(csrf_exempt, require_POST) def foo(request): pass
文章推荐
-
Python2.7 在windows命令窗口 输出中文乱码
本文实例讲述了在windows命令窗口下执行python文件产生乱码的问题, 供大家参考:ps: 如有错误还请指正, 欢...
Python
28秒前 0 -
pandas 基础
pandas 是基于 numpy 构建的含有更高级数据结构和工具的数据分析包类似于 Numpy 的核心是 ndarray...
Python
1分钟前 1 -
如何复制一个虚拟环境的包到另一个环境中去?
在我们使用python开发中,一般会使用到virtualenv来做环境的隔离,防止污染本地的python环境在我们有多个...
Python
2分钟前 0 -
python中一些基本概念的详解
面向对象:概念:类,实例化,对象,实例属性:公有属性:在类中定义成员属性:在方法中定义 立即学习“Python免费学习笔...
Python
3分钟前 0 -
Python爬虫:HTTP协议、Requests库
http协议:HTTP(Hypertext Transfer Protocol):即超文本传输协议。URL是通过HTTP...
Python
4分钟前 0
最新文章
- Python2.7 在windows命令窗口 输出中文乱码 28秒前
- pandas 基础 1分钟前
- 如何复制一个虚拟环境的包到另一个环境中去? 2分钟前
- python中一些基本概念的详解 3分钟前
- Python爬虫:HTTP协议、Requests库 4分钟前
- Python之Excel操作 5分钟前
- 解决Linux系统中python matplotlib画图的中文显示问题 6分钟前
- Python之os操作实例 7分钟前
- python学习路程 7分钟前
- Python For Data Analysis学习之路 8分钟前