原文:http://www.geekfan.net/7862/ Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解。这些特性包括列表/集合/字典推导式,属性(property)、以及装饰器(decorator)。对于大部分特性来说,这些“中级”的语言特性有着完善的文档,并且易于学习。 ...
分类:
编程语言 时间:
2016-11-13 17:12:47
阅读次数:
403
装饰器 装饰器英文Decorator,自身是一个函数,用来包装其它的函数,实现在不改变原来代码的情况下,增加新的功能,返回一个修改后的函数对象, 装饰器功能: 1、装饰器也是函数 2、在不改变原有代码的情况下,增加新的功能 3、符合开放-封闭原则 在学习装饰器之前,我们复习一下函数的相关概念 理解函 ...
分类:
编程语言 时间:
2016-11-12 09:30:28
阅读次数:
250
动态地给对象添加一些额外的职责。就功能来说,装饰模式相比派生子类更为灵活。 当需要改进类的某个功能,而不是该类创建的全部对象时,可以使用这种设计模式。 装饰模式中有四种角色; 1、抽象组件:我们需要改进的类的父类,是一个抽象类。定义了一些虚函数。 2、具体组件:也就是它的某些对象可能需要被改进。也叫 ...
分类:
编程语言 时间:
2016-11-11 23:46:05
阅读次数:
409
带参数的装饰器__author__=‘similarface‘
importsys
importlogging
importfunctools
logging.basicConfig(stream=sys.stderr,level=logging.DEBUG)
defdecorator(config):
defconcrete_decorator(function):
defwrapped(*args,**kw):
returnfunction(*args,**kw)
returnwrappe..
分类:
编程语言 时间:
2016-11-09 23:29:10
阅读次数:
211
来源:廖雪峰 看了好多次装饰器,发现还是廖老师讲得好,能让我看懂..... 下面是一段装饰器代码 它的含义等价于 即,log是一个函数,接收一个函数做参数,now变成了log(now)的返回值 下面,加上一个简单的log函数,只嵌套一层。 结果 在log函数中打印了被调用函数的名称,但是一共只会运行 ...
分类:
编程语言 时间:
2016-11-08 23:19:38
阅读次数:
216
Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解。这些特性包括列表/集合/字典推导式,属性(property)、以及装饰器(decorator)。对于大部分特性来说,这些“中级”的语言特性有着完善的文档,并且易于学习。 但是这里有个例外,那就是描述符。至少对于我来说,描述符是Pyt ...
分类:
编程语言 时间:
2016-10-22 20:39:38
阅读次数:
217
转载:http://www.cnblogs.com/java-my-life/archive/2012/04/20/2455726.html#3507798 在阎宏博士的《JAVA与模式》一书中开头是这样描述装饰(Decorator)模式的: 装饰模式又名包装(Wrapper)模式。装饰模式以对客户 ...
分类:
其他好文 时间:
2016-10-20 07:13:30
阅读次数:
206
很早很早就知道有这么个 装饰器的东西,叫的非常神秘。 包括c# 和 java 中都有这个东西, c#中叫做attribut 特性,java中叫做Annotation 注解,在偷偷学习c#教程的时候,我承认我 看了盗版的视频,上边的讲师一带而过,说过这个东西,所以我觉得这个东西很是高达上,这里不说这两 ...
分类:
其他好文 时间:
2016-09-20 10:13:32
阅读次数:
129
概念理解:装饰者模式(Decorator),就是装饰一下某种东西,使得他比原来增加些东西,比如化妆,原来单眼皮,给贴上个假双(这里也许不太贴切哈,莫怪),就具备了双眼皮效果。回到java上来说,就是给某个类的功能进行加强,扩展了其功能而已。 模式由来:我们要对一个类进行增强,因为不推荐直接修改源代码 ...
分类:
其他好文 时间:
2016-09-15 06:18:01
阅读次数:
171