1. 返回对象的数目 python实际返回的对象 0 -> None ; 1 ->
object ; >1 -> tuple2. 内部/内嵌函数:如果内部函数的定义包含了再外部函数里定义的对象的引用,
内部函数会变成被称为闭包的特别之物。3. 装饰器
分类:
编程语言 时间:
2014-05-15 15:46:59
阅读次数:
188
看了几集毛骗( 不是毛片 是毛骗) 就11点了..
给爱用继承的人一个全新的设计眼界. 在不修改现有代码的情况下.扩展行为.
>. 装饰者和被装饰者对象有相同的超类型.
>. 你可以用一个或多个装饰者包装一个对象.
>. 既然装饰者和被装饰者对象有着相同的超类型,所以在任何需要原始对象(被包装)的场合,可以用装饰过的对象代替它.
>.(关键点)装饰者可以在所委托被装饰...
分类:
其他好文 时间:
2014-05-15 05:51:26
阅读次数:
217
Decorator模式(别名Wrapper):动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。...
分类:
编程语言 时间:
2014-05-15 05:45:34
阅读次数:
319
装饰模式(Decorater)动态的给一个对象添加一些额外的职责。
就增加功能来说,装饰模式比生成子类更加灵活。装饰模式中有几个关键的地方:①装饰模式依赖于【装饰者】类中有一个父类对象(指针),
而装饰函数(或方法)用来此父类对象(指针)设置实际的动态类型。②因为是要给某个对象增加职责,所以很明显的...
分类:
其他好文 时间:
2014-05-14 12:03:06
阅读次数:
297
首先来看一个例子:比如,饮料可以分为很多种类,而这里我取一个咖啡,那么这个咖啡呢,有多种形式的,比如有加糖了的咖啡,有加奶的咖啡,也有加热了的咖啡,也有加了冰块的咖啡。而各个顾客的选择却是不同的,比如,有的客户是要加糖的咖啡,而有的客户却是要加冰的咖啡,也就是需求是各种各样的,那么如何实现这种情况呢...
分类:
其他好文 时间:
2014-05-12 13:32:33
阅读次数:
297
原文第8章 装饰模式(Decorator Pattern)概述:
装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的特点:(1)
装饰对象和真实对象有相同的接口。这样客户端对象就可以和真实对象相同的方式和装...
分类:
其他好文 时间:
2014-05-12 09:03:58
阅读次数:
352
静态方法独立于类和类的实例,它是定义在类作用域内的方法。可以由类和实例直接调用。
类方法和静态方法都要使用装饰器来定义,定义的基本格式是:
@staticmethod
def ():
#do something
类方法定义的基本格式是:
@ classmethod
def (cls):
#dosomething
类方法与成员方法不同的是,它需...
分类:
编程语言 时间:
2014-05-11 22:25:53
阅读次数:
422
解决的问题是:我有一个类A,里面可能需要很多不同行为的功能。
现在有三种解决方法,第一种:每个功能都弄成一个类,然后继承类A,这种的问题是,如果功能很多,会造成类爆炸。
第二种:我将功能类组合上类A上,这种想法是好的,但还没够弹性,因为这样我没法在不修改类A的情况下对功能的动态添删。(我的目的就是在不修改类A的情况下,对类A进行功能扩展)
第三种:就是我要说的装饰者模...
分类:
其他好文 时间:
2014-05-11 21:26:18
阅读次数:
340
Flask默认使用的是Jinja2的模板引擎,下面将会介绍下Flask提供给模板的一些方法。#-*-coding:utf-8-*-
#导入一些函数
fromflaskimportFlask
fromflaskimportrender_template,g
#创建一个app
app=Flask(__name__)
#创建一个装饰器
@app.route("/")
@app.route("/index")
defindex..
分类:
其他好文 时间:
2014-05-11 19:25:12
阅读次数:
443
本系列记录个人在“设计模式”上的学习,文中错误之处,恳请读者指正。装饰者模式:动态地将责任附加到对象上。如要扩展功能,装饰者提供了比继承更有弹性的替代方案。设计原则:好的代码设计应该免于修改,又易于扩展。
扩展和修改实际上并不矛盾,扩展的是功能,修改的是代码,而功能的增加不一定要通过修改原来的代码....
分类:
其他好文 时间:
2014-05-11 13:34:39
阅读次数:
306