def Mylog(): print("my log") 上面是定义的一个装饰器,装饰器都使用闭包实现 执行log("ddd"),只会打印1,也就是当前返回deractor1这个函数。 如果执行log("dddddd")(Mylog),就会打印1,2,也就是当前返回的函数是wrapper。 如果lo ...
分类:
编程语言 时间:
2017-04-09 13:54:20
阅读次数:
184
装饰模式 -- 原先没有,后期添加的属性和方法 修饰器(Decorator)是一个函数,用来修饰类的行为。这是ES7的一个提案,目前Babel转码器已经支持。 需要先安装一个插件: npm install babel-plugin-transform-decorators-legacy --save ...
分类:
其他好文 时间:
2017-04-09 13:48:41
阅读次数:
264
迭代器和装饰器在python中的使用十分常见,下面是个人对迭代器和装饰器的理解 迭代器 1、迭代器 iter 的特点: (1).访问者不需要关心迭代器的内部结构,仅需要通过__next__()方法不断去取下一个内容 (2).不能随机访问集合(不是set,只是一些元素的聚集体)中的某个值,只能从头到尾 ...
分类:
编程语言 时间:
2017-04-08 18:47:14
阅读次数:
300
decrator 装饰器:定义:本质是函数,(装饰其他函数)就是为其他函数添加功能原则:1、不能修改被装饰的函数的源代码 2、不能修改被装饰的函数的调用方式 实现装饰器的功能知识储备1、函数即变量2、高阶函数 a:把一个函数当做参数传递给另外一个函数(在不修改被装饰函数的源代码的情况下为 其他函数添 ...
分类:
其他好文 时间:
2017-04-07 22:46:56
阅读次数:
209
这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。 主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子 ...
分类:
其他好文 时间:
2017-04-05 21:16:09
阅读次数:
237
总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、 ...
分类:
其他好文 时间:
2017-04-04 21:30:15
阅读次数:
155
总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、 ...
分类:
其他好文 时间:
2017-04-04 20:10:23
阅读次数:
217
1.迭代器(Iterator) 迭代器是访问集合元素的一种方式。有下面特点: 1)每次调用__next__()方法只访问一个元素,而且不能后退,便于循环比较大的数据集合,节省内存;(当容器中没有可访问的元素后,next()方法将会抛出一个StopIteration异常终止迭代器) 2)只能从头到尾访 ...
分类:
编程语言 时间:
2017-04-04 00:55:22
阅读次数:
267
简述23种软件设计模式 一、设计模式分类 总体来说设计模式分为三大类: 五种创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 七种结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 十一种行为型模式:策略模式、模板方法模式、观察者模式、迭代... ...
分类:
其他好文 时间:
2017-04-03 23:34:10
阅读次数:
184