初识装饰器(decorator ) Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。 使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。 先看一个例子: 输出结果: 这 ...
分类:
编程语言 时间:
2016-08-01 15:29:20
阅读次数:
127
1.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责 ...
分类:
其他好文 时间:
2016-08-01 13:53:44
阅读次数:
117
装饰设计模式:Decorator Pattern,又称装饰者模式。特点是可以在不改变这个类的情况下,动态的为其添加新的功能,在运行时动态对对象进行扩展。主要实现方式是通过将其包装成另一个对象并添加新的功能来实现动态的添加功能。也就是说,是通过另一个类来将本来的对象包裹其中。 在实现的时候需要注意使装 ...
分类:
其他好文 时间:
2016-07-31 20:30:51
阅读次数:
130
1. 高阶函数 接收 函数作为参数,返回函数。 2. 函数闭包 3. 接收一个函数为参数,对其进行包装,然后返回一个包装函数 ...
分类:
编程语言 时间:
2016-07-30 22:31:43
阅读次数:
166
Python中有两个用法比较经典,一个是装饰器,另一个就是yield(生成器)了,装饰器顾名思义就是装饰某东西的,这个东西就是函数,简单的说就是把函数当成该装饰器的参数然后返回一个函数。 最近接触到了yield字段,这个真是太好用了,它就像range和xrange的区别差不多,好多人用range函数 ...
分类:
编程语言 时间:
2016-07-30 16:42:06
阅读次数:
154
参考博客地址:http://www.cnblogs.com/wupeiqi/articles/4980620.html1.写代码要遵循开放封闭原则,简单来说,规定已经实现的功能代码不允许被修改,但可以被扩展,即:封闭:已实现的功能代码块开放:对扩展开发2.装饰器完全替代f1函数,再在其函数体内增加f1函数体实现,如..
分类:
编程语言 时间:
2016-07-30 15:10:40
阅读次数:
296
Hello Python :) 细节: def fun(): return "Hello" 对于这个函数,fun代表这个函数,fun()代表执行这个函数,既然fun代表这个函数名,那fun也可以作为参数,传入另外一个函数。例子: 装饰器: 引言:在AirTech公司中,底层的Coder写的功能需要变 ...
分类:
编程语言 时间:
2016-07-30 15:05:40
阅读次数:
223
#!/usr/bin/envpython
#coding:utf-8
"""
装饰器实例拆解
"""
deflogin00(func):
print(‘00请通过验证用户!‘)
returnfunc
deftv00(name):
print(‘00你的用户是:%s‘%name)
#装饰器的精简工作原理解释:
tv=login00(tv00)#返回tv函数的对象,赋值给tv
tv(‘yh00‘)#调用执..
分类:
编程语言 时间:
2016-07-29 19:37:42
阅读次数:
191
import time def tm(*arg, **kwargs): def wrap_fun(fun): def wrap_arg(*arg, **kwargs): print time.time() fun(*arg, **kwargs) print time.time() return wr ...
分类:
其他好文 时间:
2016-07-29 19:06:32
阅读次数:
153
一、装饰者模式定义 装饰者模式可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象。这种为对象动态添加职责的方式就称为装饰者模式。装饰者对象和它所装饰的对象拥有一致的接口,对于用户来说是透明的。 和java等语言不同的是,java的装饰器模式是给对象动态添加职责,javascr ...
分类:
编程语言 时间:
2016-07-28 16:37:55
阅读次数:
422