这几天花了点时间了解了下 Python的装饰器。其实以前在书上也看过有关的内容,不过当时不理解。今天把自己的一点体会写出来跟大家分享一下。 网上流传得比较广的,有关 python装饰器的文章有两篇,一篇是 CSDN上的,另外一篇是园子里的。附带链接如下: http://blog.csdn.net/t...
分类:
编程语言 时间:
2015-02-06 16:30:15
阅读次数:
219
django程序,需要写很多api,每个函数都需要几个装饰器,例如
@csrf_exempt
@require_POST
def foo(request):
pass
既然那么多个方法都需要写2个装饰器,或者多个,有啥办法把多个合并成一行呢?
上面的函数执行过程应该是
csrf_exempt(require_POST(foo))
修改成
def compose(*...
分类:
编程语言 时间:
2015-01-30 17:46:10
阅读次数:
156
修饰器用来包装函数,增加额外的功能,而且应能够修饰一批函数,减少代码重用。简单的修饰器一个函数接收函数对象作为参数,并且返回函数对象,这样的函数可以成为一个修饰器,形如下面的定义:defdeco(func):
def_deco(*args):
print"dosomething"
func(*args)
return_deco上..
分类:
编程语言 时间:
2015-01-13 20:04:18
阅读次数:
313
装饰器是Python的一个特性,其实就是对callable对象的一个包装。下面是几个例子:1.修饰器自身不带有参数,那么AAA的参数就是func123456789def AAA(f):def wrapper(YYY):XXXf(YYY)return wrapper@AAAdef func(OOO):...
分类:
编程语言 时间:
2015-01-07 18:28:24
阅读次数:
209
基本概念具体概念请先看之前的文章 理解装饰器装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理, Web权限校验, Cache等。很有名的例子,就是咖啡,加糖的咖啡,加牛奶的咖啡。本质上,还是咖啡,只是在原有的东西上,做了“装饰”,使之附加一些功能或特...
分类:
编程语言 时间:
2014-12-26 10:53:57
阅读次数:
210
装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。...
分类:
编程语言 时间:
2014-12-25 13:11:57
阅读次数:
250
上次妮子问我装饰器的问题,当时学的很菜,现在也很菜, 只是硬生生的把自己的记忆和例子结合取来来帮她解答。 这次又重新学习了一遍: 1. 装饰器在函数前后执行相关的功能: 装饰器和函数都不包含参数 , 要想返回...
分类:
编程语言 时间:
2014-12-25 11:34:34
阅读次数:
161
http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html 很不错的一篇文章http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html1. 装饰器入门1.1. 需求是怎么来的?装...
分类:
编程语言 时间:
2014-12-05 17:01:59
阅读次数:
276
1.>>> def deco(func):... print "In deco"... return func...>>> @deco... def foo():... print "In foo"...In deco #因为deco()返回的...
分类:
编程语言 时间:
2014-11-23 07:00:31
阅读次数:
191
最近在学习廖雪峰的python教程,在装饰器的一章中有个思考题: 请编写一个decorator,能在函数调用的前后打印出‘begin call‘和‘end call‘的日志 import functools def log(params): def decorator(): @functools....
分类:
编程语言 时间:
2014-11-14 00:25:17
阅读次数:
250