翻译三层装饰器defBefore(request,kargs):print‘before‘defAfter(request,kargs):print‘after‘defFilter(before_func,after_func):defouter(main_func):defwrapper(request,kargs):before_result=before_func(request,kargs)if(before_result!=None):returnbefore_result;main_..
分类:
编程语言 时间:
2015-12-03 02:19:12
阅读次数:
287
在面试的时候,被问到装饰器,在用的最多的时候就@classmethod ,@staticmethod,开口胡乱回答想这和C#的static public 关键字是不是一样的,等面试回来一看,哇,原来是这样,真佩服我当时厚着脸皮回答的那些问题... OK,先来张图看看装饰器内容: OK,我们留...
分类:
编程语言 时间:
2015-12-02 18:00:50
阅读次数:
150
一、常规的装饰器,比如@auth,执行2步操作:1、执行auth函数,并传参func进来2、获取返回值,并赋值给被装饰器的函数的函数名(如让fetch_server_list等于返回值)二、而带参数的装饰器,比如@auth(before,after),则执行3步操作:1、执行auth(before,after)这个函数,得到返..
分类:
编程语言 时间:
2015-12-01 13:03:32
阅读次数:
142
转自http://blog.csdn.net/hust_is_lcd/article/details/78843201.认识装饰器模式 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能。通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生对应的子类来扩展,抑或是使用对象...
分类:
其他好文 时间:
2015-11-30 22:16:57
阅读次数:
200
有些时候,可能实际工作中需要同时使用多个装饰器,具体怎么用,见代码:#basic5.py
defauth1(func):
definner():
print‘before1‘
func()
print‘after1‘
returninner
defauth2(func):
definner():
print‘before2‘
func()
print‘after2‘
returninner
@auth2
@auth1
deff1()..
分类:
编程语言 时间:
2015-11-30 18:07:19
阅读次数:
167
在上篇基础(1)中,我写了一个装饰器及使用方法,但是如果遇到一个函数带返回值的话,就不好使了,因此重写一个装饰器如下:#basic2.py
#coding:utf-8
defauth(func):
definner(*arg,**kwargs):
print‘before‘
temp=func(*arg,**kwargs)#这行是关键,func相当于fetch_server_li..
分类:
编程语言 时间:
2015-11-30 02:21:41
阅读次数:
161
装饰器:1、装饰器是一个函数,至少两层函数。2、例如@auth:执行auth啊函数,被装饰的函数作为参数auth(foo)auth函数的返回值,赋值给被装饰的函数的函数名。3、动态参数,可以装饰含有n个参数的函数。4、函数返回值5、多装饰器->盒子模型6、三层,三层的如何使用。比原来..
分类:
编程语言 时间:
2015-11-29 07:02:16
阅读次数:
166
Python装饰器原理装饰器是函数,只不过该函数可以具有特殊的含义,装饰器用来装饰函数或类,使用装饰器可以在函数执行前和执行后添加相应操作。例如:importfunctoolsdefwrapper(func):@functools.wraps(func)defwrapper():print‘before‘func()print‘after‘returnwrapper@wrapp..
分类:
其他好文 时间:
2015-11-29 06:56:37
阅读次数:
189
1.流的类型体系: 基础流 装饰器流 包装器类 帮助类2. stream file~ memory~ network~ stream是个抽象类,其中的方法要么抽象要么虚拟(virtual)3.装饰器流:继承自stream类,又包含了stream类的引用。如buffered...
分类:
Web程序 时间:
2015-11-28 18:22:32
阅读次数:
148
开放封闭原则开发:对于未存在的开放封闭:对于已存在的代码封闭装饰器1、装饰器就是一个函数,至少2层2、执行auth函数,被装饰的函数作为参数auth(foo)auth函数的返回值,赋值给被装饰的函数的函数名@authdef foo():pass3、动态参数,可以装饰含有n个参数的函数4、函数返回值5...
分类:
编程语言 时间:
2015-11-28 12:03:52
阅读次数:
175